web-dev-qa-db-ja.com

転送されたSSHエージェントでSCPを使用する

現在、ローカルコンピューターの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転送の使用方法に関するアイデアはありますか?

4
efong5
  • scpエージェントの転送をサポートしていません (コードで無効化されるようにハードコードされています)したがって、これはあなたが試みていることは不可能です。

  • 問題はSudoにあります。 ssh-agentへの接続は環境変数SSH_AUTH_SOCKecho $SSH_AUTH_SOCK)に格納され、この変数はSudoの間は保持されないため、次の2つの可能性があります。

    • Sudoscpは使用しないでください。適切な場所にscpを実行し、次にファイルを目的の場所にSudo cp実行します。

    • Sudoに環境を保持するように強制します。 -Eスイッチを使用する変数:

      Sudo scp -r <new_folder> <second-server-path>
      
  • 2つのサーバー間でファイルをコピーする場合は、-3スイッチを使用します。これにより、エージェントにアクセスできるホストから両方の認証が行われます。

4
Jakuje