我有一个像这样的配置文件
Host <NAMEOFHOST>
user <USERNAME>
hostname <IP>
Host <NAMEOFHOST2>
user <USERNAME>
ProxyCommand ssh -q -W %h:%p <NAMEOFHOST>
将这些行添加到配置文件后,我将能够使用命令连接到服务器
ssh <NAMEOFHOST2>
但是,还有一个小问题。我没有 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
当我尝试连接到服务器时,我得到了
服务器意外关闭网络连接
我的设置有什么问题?谢谢。
更新:感谢您对 PuTTY 的建议。我试过了,但是它无法连接。
因此,我尝试使用 OpenSSH。我只是在其中添加了参数ssh_config
。但是,现在,当我尝试连接到服务器时,我得到了这个
ssh_exchange_identification:远程主机关闭连接。
我不知道我做错了什么。
答案1
ssh
您的 Windows 系统上可能没有二进制文件。
您可以使用plink.exe
与-nc
转变而不是ssh
使用开关-W
:
另一种方法是首先使用 PuTTY(或 Plink)的另一个实例通过“NAMEOFHOST”打开隧道。
例如,我的指南隧道 SFTP/SCP 会话。它适用于 WinSCP,但只需在部分中使用 PuTTY 代替 WinSCP通过隧道连接。
或者,你可以ssh.exe
从Microsoft 为 Windows 构建的 OpenSSH。在 Windows 10 版本 1803 或更新版本中,OpenSSH 是内置的。在旧版本的 Windows 10 上,您可以安装它,也可以直接下载 ZIP 包。客户端工具不需要任何安装,您只需将其提取即可。
也可以看看OpenSSH 是否支持多跳登录?
答案2
假设我们想要远程控制通过172.16.0.21
8.8.8.8
两个主机的登录名都是john
私钥的路径是C:\users\john\.ssh\private.ppk
。
plink.exe -v -ssh %user@%proxyhost -P %proxyport -nc %host:%port -i "c:\Users\john\.ssh\private.ppk"