host1-> 10.3.0.0.1 host2-> 10.3.0.0.2 両方とも ssh サーバを実行しています
ssh サーバは、host1 のポート 22 と host2 のポート 6969 で待機しています。さて、私のローカルマシンを使って、ssh 経由で host1 または host2 にログインせずに host1 から host2 に何かをコピーする必要があります。以下のようなものです
scp user@10.3.0.1:/path/to/file user@10.3.0.2/path/to/file
どうすればいいのでしょうか、2つのホストでは ssh のために異なるポートを使用していることに注意してください
164 uwais ibrahim 2013-12-10
過去には、リモートシステム間でファイルをコピーするために(素朴に)呼び出されたときに、scp
が動作する方法は非常に不便でした
scp user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
scp
は最初に remote1 で ssh
セッションを開き、そこから remote2 に scp
を実行します。これを動作させるためには、remote1 上で remote2 の認証資格情報を設定しなければなりません
代わりに、現代的な方法 (「現代的」というのは、実装されたのがほんの数年前で、おそらく誰もが -3
対応の scp
を持っているわけではないからです) では、2 つのステップが必要です。 最初に必要なステップは、以下のように ~/.ssh/config
を使って remote1 と remote2 の両方に接続するためのすべてのオプションを設定することです
Host remote1.example.org
Port 2222
IdentityFile /path/to/host1-id_rsa
Host remote2.example.org
Port 6969
IdentityFile /path/to/host2-id_rsa
このようにして、必要なすべてのオプションを曖昧さなくコマンドに渡すことが可能になります。例えば、上記の設定を行わずにCLIでポート2222を使用すると言っていた場合、リモート1を参照しているのかリモート2を参照しているのか、暗号鍵を含むファイルについても同様に不明瞭になっていたでしょう。このようにして、CLI は整然としたシンプルなものになります
次に、以下のように-3
オプションを使用します
scp -3 user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
-3
オプションは、転送のサードパーティであるにもかかわらず、コマンドが発行されたPCを経由してトラフィックをルーティングするようにscp
に指示します。この方法では、認証資格情報はサードパーティである発行PCにのみ存在しなければなりません
257 MariusMatutiae 2013-12-10
ソースとターゲットは URI として scp://[user@]host[:port][/path] の形式で指定することができます
走れるように
scp -3 scp://user@10.3.0.1:22/path/to/file scp://user@10.3.0.2:6969/path/to/file
11 molabib 2018-12-03
前回試した時はscpができませんでした。コマンドラインは問題なさそうです。この回避策は有効です
ssh -p port_on_machine1 user@machine1 "cat /path/to/file/one"|ssh -p port_on_machine2 user@machine2 "cat >/path/to/file/two"
7 peterh – Reinstate Monica 2013-12-10
私の場合は、-3
引数を使わずにリモートからリモートへのコピーを行っていました。P’ パラメータで指定したポートは 1 台目のサーバでは動作しますが、2 台目のサーバでは 22 番ポートが使用されています
ssh -P 1234 user@server1.mydomain.com user@server2.otherdomain.com
解決策は、server1
の/etc/ssh/ssh_config
ファイルを編集して、これらの行を追加することです
Host *.otherdomain.com
Port 1234
このように、どちらもポート1234を使用しています。これも違う可能性があります
このソリューションは、コミュニテーションがダイレクトであるため、従来のソリューションよりもスループットが向上しています
5 david.perez 2016-01-26