SSHトンネルを介してFTPが機能しないのはなぜですか?

SSHトンネルを介してFTPが機能しないのはなぜですか?

コンピュータ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トンネルにはどんな問題がありますか?

chexumを考えてみてください。正しいftpコマンドはftp localhost 2121ですが、新しい質問です。 ここに画像の説明を入力してください。

答え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トンネリングローカルおよびリモートポート転送の説明」へのリンクも残します。

http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html

最後に、リモートシステムでSSH接続にルートを使用しないことをお勧めします。ルートは非常に強力なアカウントなので、システム管理用にのみ予約する必要があります。

また、多くの最新のLinuxでは、rootとしてSSHリモートログインがデフォルトで無効になっています。

SSHを介したルートログインが悪すぎて、誰もが無効にすることをお勧めするのはなぜですか?

関連情報