リモート マシン (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 を直接マップすることもできますが、標準のサーバー ポートは侵入経路を探しているマルウェアの一般的なターゲットであるため、個人的にはこれを避けることをお勧めします)。