Linux
將 scp 與轉發的 ssh 代理一起使用
我目前正在嘗試
scp
使用本地電腦上的 ssh 密鑰將文件從一台伺服器傳輸到另一台伺服器。這是我目前正在使用的命令:
sudo scp -r -o "ForwardAgent yes" <new_folder> <second-server-path>
我已經按照這個 github 文件來驗證我的 ssh 代理是否被轉發到第二個伺服器的終端。
-o "ForwardAgent yes"
來自這個參考,但沒有出現在我的man scp
參考中。然而,在這一切之後,該命令仍然要求輸入密碼(我們試圖避免)。關於如何使用 ssh 轉發的任何想法?
scp
不支持轉發您的代理(硬編碼為在程式碼中禁用),因此您無法嘗試這樣做。問題出在
sudo
. Connection tossh-agent
儲存在環境變數SSH_AUTH_SOCK
(echo $SSH_AUTH_SOCK
) 中,並且在此期間不保留此變數,sudo
因此有兩種可能性:
- 不要
sudo
用來scp
。只執行scp
到某個合理的位置,然後sudo cp
將文件執行到所需的位置。- 強制
sudo
保留環境。-E
使用開關的變數:sudo scp -r <new_folder> <second-server-path>
當您想在兩台伺服器之間複製文件時,請使用
-3
switch,這將從您的主機進行兩次身份驗證,您可以訪問您的代理。