SSH を使用してリモートからローカルにファイルを転送する方法

SSH を使用してリモートからローカルにファイルを転送する方法

リモート マシン (Linux) からローカル マシン (Mac) にディレクトリを転送するには、どのターミナル コマンドを使用できますか?最も重要なのは、リモート マシンに SSH 接続しながらコマンド ラインからこれを実行したいということです。ローカル マシンのコマンド ラインで SCP を使用する方法はわかっていますが、リモート マシンからどのように使用すればよいのか (ローカル パスがどうなるのか) がまったくわかりません。

答え1

sshdローカルコンピュータでまだ起動していない場合は、起動してください。2番ローカル コンピュータからリモート コンピュータへのセッション:

ssh -R 2222:127.0.0.1:22 user@remote

これにより、リモート ポート 2222 がsshdローカル コンピューターの 127.0.0.1 でリッスンしているポートに転送され、が作成されますreverse tunnel。次に、scpリモート コンピューターで次を実行します。

scp -P2222 file 127.0.0.1:/path/

答え2

逆に、リモートマシンからローカルマシンにファイルを取得することも可能である。

ssh -L 2222:[email protected]:22 [email protected] -N &
scp -P 2222 127.0.0.1:/path/to/file/on/remote/machine.diff /tmp

ssh コマンドは、localhost:2222 から、ネット接続サーバー remoteserver.com の背後にあるリモート マシン 192.168.1.37 へのトンネルを設定します。2 番目のコマンドを使用すると、それをローカルにコピーできます。

いくつかの良い例とヒントはここにあります、そしてそれを自動化するために ~/.ssh/config で設定する方法を説明します。

答え3

プライベートIPアドレスを付与するルーター/ファイアウォールの背後にいる場合は、ルーターを設定してポートをNATし、ローカルポート22にマップする必要があります。その後、リモートコンピューターからパブリックIPアドレス選択したポートで (ポート 22 を直接マップすることもできますが、標準のサーバー ポートは侵入経路を探しているマルウェアの一般的なターゲットであるため、個人的にはこれを避けることをお勧めします)。

関連情報