1つのremoteサーバーから別のremoteにファイルをコピーしようとしています)mylocalマシンのサーバー。これが私がやろうとしていることです
localA $ scp userB@remoteB:/path/to/file userC@remoteC:/path
問題は、リモートマシンでuserBとuserCの両方に2つのパスワードを渡す必要があることです。
Garron によると、上記は機能するはずですが、許可が拒否されました。
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).
lost connection
助言がありますか?
この質問はすでにスーパーユーザーに存在します:
https://superuser.com/questions/686394/scp-between-two-remote-hosts-from-my-third-pc
scp -3 user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
そこで説明されているように、-3オプションは、コマンドが発行されたPCを介してトラフィックをルーティングするようにscpに指示します。
Remote1とremote2が同じネットワーク上にある場合、上記のことが当てはまります。
そうでない場合:-ポート転送を使用する必要があります
ローカル(ローカル->リモート1およびローカル->リモート2)から両方のリモートサーバーにsshできる場合、次を試すことができます。
ssh -A -t user1@remote1 scp srcpath user2@remote2:destpath
これにより、ローカル認証情報を使用してremote1からremote2に直接転送されます。
パスワードの入力を求められない場合は、リモートでauthorized_keysファイルを設定する必要があります。
これは、Linuxターミナルで次のコマンドラインを使用して可能です。
scp -3 user1 @ ip:path/from/directory/user2 @ ip:path/to/directory
次のようなパスワードを要求するプロンプトが表示されます。
ser1 @ ipのパスワード:user2 @ ipのパスワード:
最初のパスワードの後にEnterキーを押して両方のパスワードを順番に入力すると、受け入れられるはずですが、それはできません。両方のパスワードを順番に再度指定しても、最初のパスワードの後にEnterキーを押さなくても、再度受け入れられません。
最初にuser2を指定してからEnterキーを押してから、user1のパスワードを入力してEnterキーを押す必要があります。これは機能します。
正しく聞こえないことはわかっていますが、これだけが機能します。これはscpのbugです。
-o "ForwardAgent yes”
トリックを行います:
localA $ scp -o "ForwardAgent yes” userB@remoteB:/path/to/file userC@remoteC:/path
これは-3
私は物事を遅くする中間のマシンが欲しくないので。私も@RubenCaroの回答が好きですが、これはより直接的に思えます。
Authorised_keysファイルにエントリがない場合にのみパスワードが必要です。 2台のサーバー(localA-> remoteBおよびremoteB-> remoteC)にログインし、安全な接続を確立したら、元のコマンドが機能するはずです。