ホストAに座って、パスワードを使用してジャンプサーバーBに接続し、秘密鍵(パスワードなし)を使用してサーバーCに接続します。そこからファイルをホストAにコピーしようとしています。使用:
scp -oProxyJump=user1@serverB jump:"/home/user2/file.txt" /home/user1/Desktop/
動作しません。サーバーBに移動するためのパスワードを要求すると、次のような結果が得られます。
..
..
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user1/.ssh/id_rsa
debug1: Trying private key: /home/user1/.ssh/id_dsa
debug1: Trying private key: /home/user1/.ssh/id_ecdsa
debug1: Trying private key: /home/user1/.ssh/id_ed25519
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: No more authentication methods to try.
Permission denied (publickey,keyboard-interactive).
明らかに問題は、scpがサーバーB(ある場所)にジャンプするのではなく、ホストAのキーを使用しようとしていることです。ローカルサーバーの代わりにジャンプサーバーの認証キーを使用するようにscpに指示する方法はありますか?たぶんそこに:?
scp -o IdentityFile
SSH設定ファイルを使用せずにオプションのあるコマンドのみを使用することをお勧めします
答え1
そんなことないと思います。有効にすると、ProxyJump
ホストAのSSH / SCPクライアントはサーバーBを介してトンネリングします。つまり、SSH / SCPクライアントはサーバーBで実行されないため、簡単な方法はありません。ホストBは秘密鍵を使用します。
要件に応じて、次の解決策があります。
ssh serverB ssh jump cat /home/user2/file.txt > /home/user1/Desktop/file.txt