コンピューターA(ipが44.44.44.44であると想定)は、ホスト130.89.148.12をftpできます。
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(私のローカルPC)は、ホスト130.89.148.12をftpできません。次のようにsshコマンドでsshトンネルを構築しましょう:
ssh -L -f -N localhost:2121:130.89.148.12:21 [email protected]
私のローカルPCとコンピューターA(44.44.44.44)の間のsshトンネルは、44.44.44.44にログインするためのパスワードの後に接続されました。
次に、ローカルのPCコンソールでコマンドを入力します。
ftp localhost:2121
ftp: localhost:2121: Name or service not known
Sshトンネルの問題は何ですか?
他の一般的なプロトコルとは異なり、FTPではbothポート20とポート21をTCP デフォルトではで使用しています。
パッシブという用語は、プロトコルがわずかに初期の実装よりも適切に動作することを意味します。
ここにリンクがあります:
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
または、rootがない場合:
ssh -f -N -L 2120:130.89.148.12:20 -L 2121:130.89.148.12:21 [email protected]
次に使用します:
ftp -p -P 2121 localhost
Man ftpから http://linux.die.net/man/1/ftp
-pパッシブモード
-Pポート
または、-P
をサポートしないftp
のバージョンの場合(Debian 9/Ubuntu 16.04):
ftp -p localhost 2121
「SSHトンネルローカルおよびリモートポート転送の説明」へのリンクも残します
最後に、ssh接続にリモートシステムでrootを使用しないことをお勧めします。 rootは非常に強力なアカウントであり、システム管理のためにのみ予約する必要があります。
さらに、最近の多くのLinuxでは、rootとしてのリモートログインはデフォルトで無効になっています。