
我將如何更改我的 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協定。
SFTP 連線支援 ~/.ssh/config 中的以下設定選項:
- 身分檔案用於公鑰認證。
- 主機名稱別名。
- 使用者登入憑證的首選項。
答案2
我使用類似的配置,這對我來說效果很好。
從最後一個區塊中明確排除代理伺服器可能會有所幫助Host
:
Host *.test.com !proxyserveradres.test.com
ProxyCommand ...
此外,您可以嘗試該-W
選項(這基本上與 相同nc
,但沒有額外的命令,因此它更有效,並且有一個可能的錯誤來源)
ProxyCommand ssh proxyserveraddress.test.com -W %h:%p