- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个服务器设置,可以在一定时间后将它的SSH端口随机化,并将端口发布到Web服务器上可用的.txt文件中。然后,我在客户端上编写了一个简单的脚本,该脚本从Web服务器.txt文件中获取新端口并更新〜/ .ssh / config中的特定主机端口号。
因为〜/ .ssh / config无法解析Bash变量,所以我使用ProxyCommand调用了脚本(我使用的是JumpHost,而JH端口是动态端口)。
我的〜/ .ssh / config如下:
Host jumphost
HostName jumphost.example.com
Port 51638
User bob
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
Host myserver
HostName myserver.com
Port 2222
User bob
ProxyCommand ~/.ssh/get_dynamic_port.sh ssh -W %h:%p jumphost
#!/bin/sh
PORT=$(curl -s http://jumphost.example.com/port.txt)
OLDIP=`grep -w "jumphost.example.com" -A 1 ~/.ssh/config | awk '/Port/ {print $2}'`
LINE_NUMBER=`grep -n "jumphost.example.com" -A 1 ~/.ssh/config | grep -v "jumphost.example.com" | awk '{print $1}' FS="-"`
sed -i'.bak' -e "${LINE_NUMBER}s/$OLDIP/$PORT/" ~/.ssh/config
macosx:$ ssh -vvv myserver
OpenSSH_7.9p1, LibreSSL 2.7.3
debug1: Reading configuration data ~/.ssh/config
debug1: ~/.ssh/config line 54: Applying options for myserver
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Executing proxy command: exec ~/.ssh/get_dynamic_port.sh ssh -W myserver:2222 jumphost
debug1: identity file ~/.ssh/id_rsa type -1
debug1: identity file ~/.ssh/id_rsa-cert type -1
debug1: identity file ~/.ssh/id_dsa type -1
debug1: identity file ~/.ssh/id_dsa-cert type -1
debug1: identity file ~/.ssh/id_ecdsa type -1
debug1: identity file ~/.ssh/id_ecdsa-cert type -1
debug1: identity file ~/.ssh/id_ed25519 type -1
debug1: identity file ~/.ssh/id_ed25519-cert type -1
debug1: identity file ~/.ssh/id_xmss type -1
debug1: identity file ~/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.9
ssh_exchange_identification: Connection closed by remote host
最佳答案
使用“jumphosts”的现代方法是使用-J
选项(ProxyJump
)。
仍然可以使用ProxyCommand
选项,并且可以通过调用脚本灵活地运行任意设置代码,如下所示。但是,您的代码最终必须运行适当的ssh命令来执行“跳转”。
典型的config选项如下所示:
Host jump
Hostname jumphost.fqdn
User juser
Host final
Hostname final.fqdn
User fuser
ProxyCommand ssh -W %h:%p jump
ssh final
会打开一个从localhost到
jump
的连接,然后打开另一个从
jump
到
final
的连接,并启用了必要的转发。
ProxyCommand
。之后,您仍然需要运行类似普通ssh命令的命令。
ProxyCommand ~/.ssh/get_dynamic_port.sh ssh -W %h:%p jumphost
#!/bin/sh
# ... custom stuff ...
# new final line:
eval "$@"
关于bash - 带有ProxyCommand和BASH脚本的SSH配置动态端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873290/
使用 OpenSSH,我已经设置了我的 /etc/ssh/ssh_config有一个 ProxyCommand所以所有 SSH 连接都通过该代理。 /etc/ssh/ssh_config : Host
由于防火墙限制,我需要能够通过另一台主机连接到另一台主机。我目前能够使用 ProxyCommand 选项成功连接。但现在我需要在连接到目标主机后更改用户,从 user_one 更改为 user_two
我试图配置SSH配置以简化工作流程,但在这里遇到了麻烦。 我有一个跳转主机,需要sudo ssh才能访问所有其他计算机。 我发现,如果我运行ssh -tt jumphost sudo ssh dest
我正在尝试使用计算机 B 上的 key 通过计算机 B 建立隧道,从计算机 A 到计算机 C。我已经共享了从计算机 A 到计算机 B 以及从计算机 B 到计算机 C 的 key 这适用于计算机 A,无
我在使用 ssh proxy 命令时遇到了一些问题。代理上的身份验证工作正常,但是当我想登录到远程主机时它失败了。问题似乎是,代理尝试使用我的本地 rsa_key 登录,而不是使用存储在代理上的 ke
我正在尝试使用 paramiko 通过 SSH 连接到通过另一台计算机隧道传输的计算机在 Python 中,但我遇到了一些奇怪的问题。 我在 /.ssh/config 中的配置文件如下所示: Host
我有一个在防火墙后面的 git 服务器。我可以从家里访问防火墙,但不能访问 git 服务器。但是,我可以从防火墙访问 git 服务器(也就是说,我可以 SSH 到防火墙,然后再从防火墙 SSH 到 g
在我们的环境中,我们有几台服务器在生产中。每次我想搜索某些东西时,它可能在 4 个不同的服务器中的 1 个中。 我正在创建一个脚本来自动执行此搜索,以便我直接知道涉及哪个服务器。 我正在通过 jump
我只是尝试使用 PuTTY 与我的服务器建立 SSH 连接。这些服务器仅允许来自另一个特定服务器(下面示例中的“MySshProxyingServer”)的传入 SSH 连接。 使用 Linux,使用
我有一个网络服务器 WWW1 和一个前置代理 PRX。我使用 SSH ProxyCommand 通过 PRX(私有(private) + 公共(public) IP)连接到 WWW1 的内部 IP(私
我在 /etc/hosts 中定义了一个主机称为 web1 .有一个名为 store 的 docker 容器. 在我的工作站上,我可以通过 ssh 进入机器并执行命令以交互方式进入容器 ssh -t
我打算实现一个 golang 版本的 ssh 客户端来通过堡垒连接到目标服务器。但不幸的是,我在替换 nc 代理时失败了。 在我本地的 ssh 配置: Host bastion HostNam
我看过一些关于 .ssh/config 和 proxycommand 的博客 现在下一个命令之间有什么区别 ProxyCommand ssh proxyserver -W [%h]:%pProxyCo
我想通过另一台使用 ruby 的计算机连接到远程计算机。 这个方案如下: 本地 -> 代理 -> 远程 我有这段代码可以直接访问: require 'net/ssh' Net::SSH.start
我尝试使用 SSH ProxyCommand 通过跳转框连接到服务器时未成功。我的配置在下面,我正在运行这个命令: ssh 10.0.2.54 -F ssh.config -vv Host x.x.x
我有一台服务器(例如,内部服务器)只能从另一台服务器(例如,外部服务器)访问,而不是运行 Node 服务器的服务器。但是, Node 服务器可以到达外部服务器。从命令行使用 ssh 时,我可以使用 P
我是一名优秀的程序员,十分优秀!