あるサーバーから別のサーバーへのSCP?


34

ローカルコンピューターをバイパスして、あるサーバーから別のサーバーにファイルを直接コピーしようとしています。

やった

scp -r usrname@server1.com:~/data/* usrname@server2.com:~/data/
Password: 
Host key verification failed.
lost connection

これも可能ですか?どうすれば修正できますか?


次のコマンドの出力を投稿できますか?scp -r -v usrname@server1.com:〜/ data / * usrname@server2.com:〜/ data /
実用的な

回答:


55

2台のサーバー間で接続できない場合に頻繁に使用するもの

scp -3 user@server1:/path/to/file user@server2:/path/to/file

ソース

-3 2つのリモートホスト間のコピーは、ローカルホストを介して転送されます。このオプションを使用しない場合、データは2つのリモートホスト間で直接コピーされます。このオプションは進行状況メーターを無効にすることに注意してください。

youuが両方とも良好に接続していると仮定すると、遅すぎることはありません。


さらに、両方のサーバーで特別なポートを使用する必要がある場合:superuser.com/questions/686394/…–
ピット

-rディレクトリをコピーする場合は、フラグを追加することを忘れないでください。
テイラーエドミストン

16

はい、これは可能ですが、その名前を使用してserver1.com到達できる場合のみですserver2.com。そうでない場合、おそらくメッセージが表示されます:ssh: connect to host server2 port 22: Connection refused

manページscpには、ネットワーク上のホスト間でコピーすることと、次のことが明記されています。

2つのリモートホスト間のコピーも許可されます。

あなたは(一度)何をすべきかであるsshusername@server1.comして、そこからsshusername@server2.com。yesで取得する信頼性の質問に答えて、実行中にホストキー検証メッセージを削除します。scp

次を使用して、転送エージェントを有効にする必要があります。

scp -o "ForwardAgent yes" -r usrname@server1.com:~/data/* usrname@server2.com:~/data/

ただし、その危険性を認識してください(man ssh_config


私はsshからserver1.comまで編集しましたがserver2.com、実際に質問に答えて成功しました。次に、ローカルコンピューターに戻って再度実行し、server2.comパスワードのプロンプトを表示します。しかし、それはそこで失敗します:Permission denied (publickey,keyboard-interactive). lost connection
シブスギャンブル

1
@SibbsGamblingこれはあなたの秘密鍵の転送に依存していると思います。パスワードを入力せずに両方のサーバーにログインできますか?パスワードを入力せずにからserver1にログインできますかserver2。「ForwardAgent yes」を設定する必要がある場合があります。
アントン

1

まず、エラーなしでserver2にsshできるかどうかを確認する必要があります。同じエラーが発生した場合は、ファイルを開い~/.ssh/known_hostsてserver2キーを検索して削除してください。

次に、ホスト名でサーバーにpingできるかどうかを確認します

そうでない場合は、下記のようにサーバーのホストファイルの両方を編集してください

 #vi /etc/hosts  
 server1 192.186.x.x  
 server2 192.186.x.xx   
 :wq   ---> to save  

このCDを使用して、server2にコピーするファイルの場所に移動したら、

scp file_name user@server2:/path_to_the_directory --->あなたが言及することができ、ホスト名の代わりにIPを使用することができます-Rディレクトリをコピーします。


0

~/.ssh/known_hosts両方のサーバーに適切なレコードがあるかどうかを確認します

server1 ~/.ssh/known_hostsにserver2の適切なレコードがあるかどうかも確認してください


-2

以下のコマンドを使用して、あるサーバーから別のサーバーにファイルをコピーできます。

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.