SSH経由で接続されているあるコンピュータから別のコンピュータにファイルをコピーしてインポートする

SSH経由で接続されているあるコンピュータから別のコンピュータにファイルをコピーしてインポートする

これと非常によく似た質問に対する多くの回答を読んでいますが、実際に私の問題に合ったものが見つかりませんでした。状況はこんな感じです。アドレスが「machine1@address」のコンピュータがあり、このコンピュータで「machine2@ Different_address」に到達します。これで、machine1のメモリを「永久的に」占有したくないので、自分のコンピュータからmachine2に直接ファイルを送信またはインポートする必要があります。

私の目標は、Pythonスクリプトを作成してこのプロセスを自動化することです。したがって、最善の解決策はmachine1の「ホーム」を開かないことです(実際にどのように呼ぶのかわかりません。理解してください)。なぜなら、Pythonスクリプトは私が閉じるまで実行を停止するからです(少なくともSSHを使うときに何が起こるのかを簡単に説明します)。

ありがとうございます!

ベストアンサー1

「ホームページ」の用語とユーザー名の「machineX」形式が混同されます。そして私の考えでは、Pythonを使用する必要はまったくないと思います。

私の解決策は次のとおりです

machine2 に SSH トンネルを設定します。

mycomputer$ ssh -L2222:different_address:22 machine1@address

これで、トンネルを介してファイルをコピーしたり、sshfsやrsync、または必要なものをすべて使用できます。

mycomputer$ scp -P 2222 machine2@address:/whatever /target_local_dir

もう1つの方法は、addresssshdが実行されていると仮定し、コンピュータでscpを実行するか、mycomputersshコマンドをcat必要なファイルに関連付けることです。

ssh machine1@address ssh machine2@different_address cat /path_to_the_remote_file > /target_local_file

(必要に応じてSSHキーを配布します)。

おすすめ記事