コンピュータA(ipが44.44.44.44であると仮定)は、ftpホスト130.89.148.12を使用できます。
ftp 130.89.148.12
Connected to 130.89.148.12.
220 ftp.debian.org FTP server
Name (130.89.148.12:debian8): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
コンピュータB(マイローカルコンピュータ)はホスト130.89.148.12をFTPできません。 sshコマンドを使用してSSHトンネルを構築しましょう。
ssh -L -f -N localhost:2121:130.89.148.12:21 [email protected]
私のローカルコンピュータとコンピュータA(44.44.44.44)間のSSHトンネルは、44.44.44.44にパスワードでログインした後に接続されました。
次に、ローカルコンピュータコンソールに次のコマンドを入力します。
ftp localhost:2121
ftp: localhost:2121: Name or service not known
私のSSHトンネルにはどんな問題がありますか?
答え1
あなたのアプローチは、他の一般的なプロトコルとは異なり、FTPが使用することを考慮していません。両方TCPのポート20とポート21基本的に。
「手動」という用語は、プロトコル少し元の実装よりもパフォーマンスが優れています。
以下はリンクです:
http://www.slacksite.com/other/ftp.html
ポート20 / TCPはデータに使用され、ポート21 / TCPはコマンドに使用されます。
Unixでは、特権ポート<1024はルートとしてのみバインドできます。
したがって、次のいずれかを実行します。
sudo ssh -f -N -L 20:130.89.148.12:20 -L 21:130.89.148.12:21 [email protected]
これにより、追加のポートを提供せずにポートのみが接続されます。
ftp -p localhost
またはルートがない場合:
ssh -f -N -L 2120:130.89.148.12:20 -L 2121:130.89.148.12:21 [email protected]
次に、次を使用します。
ftp -p -P 2121 localhost
FTPの人々からhttp://linux.die.net/man/1/ftp
-p 手動モード
-P ポート
またはバージョンがftp
サポートされていない場合-P
(Debian 9 / Ubuntu 16.04):
ftp -p localhost 2121
「SSHトンネリングローカルおよびリモートポート転送の説明」へのリンクも残します。
最後に、リモートシステムでSSH接続にルートを使用しないことをお勧めします。ルートは非常に強力なアカウントなので、システム管理用にのみ予約する必要があります。
また、多くの最新のLinuxでは、rootとしてSSHリモートログインがデフォルトで無効になっています。