在工作中,我们有几台服务器,但只有一台可以在我们的本地网络之外通过 SSH 访问。如果我在家工作,我会使用 PuTTY 连接到可访问的服务器,然后通过 SSH 连接到我想要工作的任何服务器。
有没有办法自动化这个过程?我看到有“隧道”和“代理”的选项,但这些似乎都与我想要做的不太匹配。
我有一个看起来像这样的配置文件
Host <NAMEOFHOST>
user <USERNAME>
hostname <IP>
Host <NAMEOFHOST2>
user <USERNAME>
ProxyCommand ssh -q -W %h:%p <NAMEOFHOST>
Run Code Online (Sandbox Code Playgroud)
将此行添加到配置文件后,我将能够使用命令连接到服务器
ssh <NAMEOFHOST2>
Run Code Online (Sandbox Code Playgroud)
但是,有一个小问题。我没有 Ubuntu,我真的不想安装它(因为 UEFI)。
因此,我正在尝试使用 PuTTY 连接到服务器。
这就是我所做的
Connection -> Proxy -> Proxy type = Local
Proxy hostname = <NAMEOFHOST>
Telnet command = ssh -q -W %h:%p <USERNAME>@<NAMEOFHOST>
Session -> Hostname <NAMEOFHOST2>
Connection type = SSH
Run Code Online (Sandbox Code Playgroud)
当我尝试连接到服务器时,我得到
服务器意外关闭网络连接
我的设置有什么问题?谢谢你。
更新:感谢您对 PuTTY 的建议。我试过了,但它不想连接。
因此,我尝试使用 OpenSSH。在那里,我刚刚向ssh_config. 但是,现在,当我尝试连接到服务器时,我得到了这个
ssh_exchange_identification:连接被远程主机关闭。
我不知道我做错了什么。
Ansible 使用 OpenSSH 作为底层网络通信实现,但是它支持多跳登录吗?
我的意思是,如果 Ansible 可以直接登录服务器,但是它可以登录 server_a 然后从 server_a 登录 server_b 来配置 server_b 吗?