現在、ローカルコンピューターのsshキーを使用して、あるサーバーから別のサーバーにファイルをscp
しようとしています。
これは私が現在使用しているコマンドです:
Sudo scp -r -o "ForwardAgent yes" <new_folder> <second-server-path>
私は this github doc に従って、sshエージェントが2番目のサーバーの端末に転送されていることを確認しました。
-o "ForwardAgent yes"
は this reference から取得されますが、man scp
参照には表示されません。
ただし、このすべての後でも、コマンドはパスワードを要求します(これは回避しようとしています)。 SSH転送の使用方法に関するアイデアはありますか?
scp
エージェントの転送をサポートしていません (コードで無効化されるようにハードコードされています)したがって、これはあなたが試みていることは不可能です。
問題はSudo
にあります。 ssh-agent
への接続は環境変数SSH_AUTH_SOCK
(echo $SSH_AUTH_SOCK
)に格納され、この変数はSudo
の間は保持されないため、次の2つの可能性があります。
Sudo
〜scp
は使用しないでください。適切な場所にscp
を実行し、次にファイルを目的の場所にSudo cp
実行します。
Sudo
に環境を保持するように強制します。 -E
スイッチを使用する変数:
Sudo scp -r <new_folder> <second-server-path>
2つのサーバー間でファイルをコピーする場合は、-3
スイッチを使用します。これにより、エージェントにアクセスできるホストから両方の認証が行われます。