我在 Windows 机器上使用 PuTTY ssh 连接到我的学校服务器。从那里我需要slogin -XY machine1
然后slogin -XY machine2
。
理想情况下,我想使用 WinSCP 连接和传输文件。我知道我可以使用两个 PuTTY 副本来实现这一点,一个用于 ssh 进入服务器并创建代理,第二个 PuTTY 用于连接到代理并登录到 machine1 并创建第二个代理。然后我可以使用 WinSCP 连接到代理服务器并登录到 machine2...
有没有更简单的方法可以做到这一点?
答案1
WinSCP 直接支持单跳。
请参阅高级站点设置对话框的隧道页面。
为了另一跳(两个中的第一个), 您可以使用plink
在“本地代理命令”特征。
配置如下:
第一个跳跃高级站点设置对话框的代理页面:
这“本地代理命令”需要设置为:
plink.exe %user@%proxyhost -nc %host:%port
当然,你需要安装 Plink(PuTTY 软件包)。
为了实现这一点,身份验证必须无缝进行,没有任何提示。因此通常使用
-pw
转变进行密码身份验证或使用 Pageant 进行公钥身份验证。不过,Plink 的克隆版本支持交互式身份验证。请参阅“带有 GUI 身份验证的本地代理命令”我的回答部分如何在 PuTTY 或 mRemoteNG 中使用多因素身份验证保存 SSH 隧道设置?第二跳高级站点设置对话框的隧道页面:
最终服务器转到登录对话框:
答案2
您可以使用 MobaXterm:它具有与 WinSCP 类似的图形化 sftp 功能,但它还允许您自动完成机器跳转。他们称之为“SSH 弹跳”。
您只需
从这里下载 MobaXterm:http://mobaxterm.mobatek.net/download-home-edition.html
- 点击“新会话”并选择“ssh”
- 在“SSH 弹跳(通过网关 ssh 服务器连接)”中指定您的第一台机器名称或 IP 地址。
答案3
机器 1 和 2 是基于 unix 的吗?如果是,您不能只使用 Unix scp 吗?无论如何,您都无法使用 winscp 在两个基于 unix 的系统之间传输文件。
从源机器,
scp -rp user@hostname:destination_directory /path/to/files
您还没有明确说明要将文件从哪里传输到哪里。