我该如何更改 SSH 配置或 Cyberduck 配置,以便从本地计算机启用 SFTP 连接,通过代理服务器进行连接,然后连接到目标服务器?目前,我的连接在 Cyberduck 中失败/超时。但是,我可以从终端窗口通过 SFTP 顺利访问服务器,我认为我的 SSH 配置可能有问题。
这是我的 SSH 配置当前的状态:
Host proxyserveraddress.test.com
ProxyCommand none
# PreferredAuthentications publickey
Host server1.test.com
Host server2.test.com
Host server3.test.com
######## DEFAULTS #########
Host *.test.com
User myusername
Port 8622
PreferredAuthentications publickey,password
ProxyCommand ssh proxyserveraddress.test.com exec nc %h %p 2>/dev/null
作为基于此示例配置的具体示例 -
例如,我该如何修改此配置,以便让我本地计算机上的 Cyberduck 首先连接到 proxyserveraddress.test.com,然后再连接到 server1.test.com?
答案1
看起来 cyberduck 内部并不使用 SSH,而是自己实现了 SSH 协议。
~/.ssh/config 中的以下配置选项支持 SFTP 连接:
- 身份文件用于公钥认证。
- 主机名别名。
- 用户登录凭证的偏好。
答案2
我使用类似的配置,对我来说效果很好。
从最后一个块中明确排除代理服务器可能会有所帮助Host
:
Host *.test.com !proxyserveradres.test.com
ProxyCommand ...
此外,您可以尝试该-W
选项(这基本上与相同nc
,但没有额外的命令,因此它更高效并且可能的错误来源更少)
ProxyCommand ssh proxyserveraddress.test.com -W %h:%p