SFTPを介してNATの背後にあるリモートコンピュータに転送したいと思います。 NAT ルーターを変更できなかったため、中間サーバーを使用してリバース SSH トンネルを確立しました。
私のSSHトンネルは次のとおりです。
laptop--->nat--->middleman<--nat<--desktop
詳しくはこちらをご覧ください。 SSHリバーストンネルによるTeamViewerのリモートデスクトップの置き換え
現在、このトンネルを通じてSSHとVNCを使用しています。
トンネルを介してSFTPを使用する方法は?
私はコマンドが次のようになると仮定します。
sftp://localhost:port
SSHログインは次のように行われます。鍵ペアのみ(パスワードなし)したがって、私たちはソリューションでこれを考慮する必要があります。私はKDEを使用しているので、Dolphinファイルマネージャと連携する必要があります。 DolphinでSFTP認証を設定するのは難しいかもしれません。
私のラップトップでDolphinを実行し、このようにデスクトップのファイルシステムに接続します。
laptop(SFTP client)--->nat--->middleman<--nat<--desktop(SFTP server)
PS:それがより簡単な場合は、sshfsも考慮します。サーバーのドメイン名やIPアドレスがないため、そうは思いません。
答え1
まず、前提条件は次のとおりです(少なくとも私にとっては)。 SSHリバーストンネルによるTeamViewerのリモートデスクトップの置き換え
リバースSSHトンネルは次のとおりです。
laptop(SFTP client)--->nat--->middleman<--nat<--desktop(SFTP server)
~/.ssh/config を編集し、laptop
以下を追加します。
Host SftpToDesktop
HostName localhost
Port %p
User admin
PasswordAuthentication no
IdentityFile ~/.ssh/my_id_rsa
次に、ノートブックからメッセージの傍受(上記のリンクをたどる)まで、すでに設定されている既存のSSH回線を使用して、次の手順を実行します。
$ ssh -fNL 1234:localhost:1234 -i ~/.ssh/some_id_rsa [email protected]
最後に、Dolphinを開き(私のようにKDEを使用している場合)、次の場所を入力します。
sftp://SftpToDesktop:1234