Linux

將 scp 與轉發的 ssh 代理一起使用

  • January 14, 2021

我目前正在嘗試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>
    
  • 當您想在兩台伺服器之間複製文件時,請使用-3switch,這將從您的主機進行兩次身份驗證,您可以訪問您的代理。

引用自:https://unix.stackexchange.com/questions/327085