SSHを介してリモートホストに接続します。リモートホストからローカルホストに何かをコピーするには、scpを使用してコピーできます。
ただし、これを行うには、リモートホスト上のファイルのフルパスを入力する必要があります。私はすでにSSH接続のファイルディレクトリにあります。リモートホストに現在開いている接続を使用して接続ホスト(たとえば、自分のローカルコンピュータ)にファイルを再コピーする方法はありますか?
私が見つけたこれすでに回答しています。ただし、これには接続ホストにルーティング可能なIPが必要です。私はそれを持っていません。
答え1
リモートホストに現在開いている接続を使用して接続ホスト(たとえば、自分のローカルコンピュータ)にファイルを再コピーする方法はありますか?
確かに!しかし、私たちはシリアルライン接続の古代世界をより深く探求する必要があります。当時、ユーザーとリモートコンピュータの間の唯一のものは銅線であり、「IPアドレス」は(ほとんどの人にとって)存在しませんでした。リモートホストへの一種の帯域外接続を確立するオプションはありませんでした。
当時、私たちが使っていた多くのツールは現代まで生き残り、シリアル接続が唯一のオプションではなかったので、その過程でさまざまなネットワーキングトリックを習得しました。ただし、以下を含む残りの機能セットはそのまま残りました。 「インライン」ファイル転送プロトコル(つまり、新しい接続を開くのではなく、既存の接続で実行される転送プロトコル)
あなたのニーズに合った2つの解決策は次のとおりです。どちらの場合も、ソフトウェアをローカルにインストールする必要があります。そしてリモートホスト。
コミットの使用
インストールするコミットローカルおよびリモートホストで。
kermit
リモートホストへのSSH接続を確立するには、次の手順を実行します。kermit -EC 'ssh remotehost.example.com'
kermit
ファイル転送を開始するには、リモートホストで使用してください。remotehost$ kermit -s somefile.txt
ローカルKermitが自動的に受信モードに切り替わり、ファイルを受信するのを見てください。ローカルの現在の作業ディレクトリに表示されていることがわかります。
screen+lrzszを使う
次のようなものを使用できます画面そしてルオズシャン以下を含むパッケージモデム実装する。
ローカルにインストールします
screen
。lrzsz
ローカルおよびリモートホストにインストールします。~/.screenrc
以下を含むようにコンテンツを編集します。zmodem catch
新しい
screen
セッションを開始し、リモートホストに接続します。screen -e '' ssh remotehost.example.com
sz
ファイルを転送するには、次のコマンドを使用します。remotehost$ sz somefile.txt
rz
これにより、画面下部にコマンドが表示されます<return>
。そのコマンドを押すだけです。ローカルシステムへのファイル転送を見てください。以前と同様に、ローカルの現在の作業ディレクトリでファイルを見つけることができます。
zssh + lrzszの使用
バアバZmodemエスケープを理解するSSHラッパーです。プロセスは前のセクションとほぼ同じように見えますが、zssh
画面の代わりに次を使用します。
lrzsz
ローカルおよびリモートホストにインストールします。リモートホストに接続します。
localhost$ zssh remotehost
ファイル転送の開始:
remotehost$ sz somefile.txt
CTRL-SPACE
ファイル転送モードに入るには、を入力してrz
(次に<return>
)を入力します。
私はFedora 36で動作しており、ここで言及されているすべてのもの(kermit、screen、lrzsz、zssh)は「上記のすべて」を得るためのパッケージとして提供されています。
sudo yum install screen ckermit zssh lrzsz
他のディストリビューションでは手動でインストールする必要があります。