ローカルサーバーでSCPを使用して、あるリモートサーバーから別のリモートサーバーにファイルをコピーしようとしています(両方のリモートサーバーがカスタムポート(xxxx)を使用しています)
やっています:
scp -r -P xxxx [email protected]:/home/myimages/images.tar.gz [email protected]:/home/myimages/images.tar.gz
しかし、次のエラーが発生します。
ssh: connect to Host xxx.xxx.xxx.222 port 22: Connection timed out
助言がありますか?
最初のリモートホストから2番目のリモートホストへの直接認証が機能することを確認しましたか?
scp user@Host:/file user@otherhost:/otherfile
は略記です
ssh user@Host scp /file user@otherhost:/otherfile
それは私に考えさせます:
ssh -p XXX user@Host scp -P XXX /file user@otherhost:/otherfile
はうまくいくかもしれません。
お互いを見ることができないリモートサーバーがありますが、ローカルサーバーは両方を見ることができます。リモートサーバーのsshデーモンは、さまざまな非標準のsshポートでリッスンしています。これは私がこれを行う方法です:
ssh -p 111 userA@remote1 'cat myfile' | ssh -p 222 userB@remote2 'cat - > myfile'
2番目のsshコマンドは最初にパスワードを要求し、次にremote1はuserAのパスワードを要求します。 ssh承認済みキーを設定している場合、これは自動化されている可能性がありますが、私の環境ではそうではありません。
.ssh/config file
でサーバーを定義します。次に例を示します。
Host foobar
User youruser
Port 2222
Hostname the.real.hostname
Host foobar2
User youruser
Port 2222
Hostname the2.real.hostname
その後、簡単に行うことができます:
scp foobar:file foobar2:
定義されたカスタムポートを使用します。
scp
は、特別なポートを2番目のサーバーでも使用する必要があることを認識していないようです。 ssh
を明示的に呼び出して、リモートscp
転送を開始することができます。
ssh -P xxxx user@Host scp -P xxxx /file user@otherhost:/otherfile