LinuxデスクトップのVirtualBoxでWindows 10仮想マシンが実行される状況が発生しました。この仮想マシン(現在はこの仮想マシンのみ)は、リモートオフィスのVPNトンネルを確立できます。
私は現在、小さなラズベリーパイを持っています。現在、ローカルネットワークにあり、LinuxデスクトップからSSHに定期的に接続し、SSHに接続すると、PiからLinuxデスクトップGitリポジトリに戻すこともできます。私のWindowsコンピュータでgit bashを使ってsshでpiに接続することもできます。
これは、Linuxとpiの両方がsshdを実行しますが、Windowsはそうではありません。
まもなくこのリモートオフィスにpiを移動する予定で、この場所とLinuxデスクトップでpiとsshを送受信できる環境を設定したいと思います。
だから私の考えは、Windowsクライアントを使用してSSHトンネルを確立することです。実験的にはまだ私のWindowsコンピュータのローカル環境にあります。
ssh -L 9001:pi:22 pi@pi
(この例では、piはpiのローカルユーザーでもあります。)私はこれがポート9001からpiのsshdサーバーにトラフィックを転送すると仮定します。
その後、Linuxデスクトップではssh -l pi -p 9001 win
piにSSHでアクセスできると期待しています。
しかし、ちょうど止まっています。
私は何が間違っていましたか?
答え1
Windowsボックスで正常にssh -l pi -p 9001 win
実行できますか?試してみてはどうですかssh -l pi -p 9001 127.0.0.1
?
後者を実行できますが、Linuxシステムでは同じことができない場合は、ポート9001でローカルにのみリッスンしていることが問題かもしれません。 sshのマニュアルページ、特に-L [bind_address:]port:host:hostport
公開側でポート9001をリッスンするには、次のようにトンネルを設定できますssh -L *:9001:pi:22 pi@pi
。
答え2
私が正しく理解したら、ホストBで実行されているSSHデーモンを介してホストAからホストCにSSHをしたいですか?
.ssh/config
これは、ホストAのファイルで少しトリックを使用して行うことができます。
Host hostc
HostName hostb
ProxyCommand ssh username@hostc nc %h %p 2>/dev/null
.ssh/config
ホストAでこのスタンザを使用すると、ssh hostc
ホストBから接続をプロキシできます。
ホストAがWindowsシステムの場合、cygwinのopenSSHクライアントはこれを実行できます。 PuTTYなどでこれを複製する方法はわかりません。