リモート サーバーであるホストから VM にログインするにはどうすればよいですか?

リモート サーバーであるホストから VM にログインするにはどうすればよいですか?

私のホスト マシンは、qemu を使用して VM を作成したリモート サーバーです。次のコマンドを使用して VM を作成しました。

./qemu-system-x86_64 -hda /home/divija/images/xenial-server-cloudimg-amd64-disk1.img -cdrom /home/divija/images/ubuntu-16.04.6-server-i386.iso -m 8G -boot d -smp 4 -monitor stdio -net user,hostfwd=tcp::2222-:22 -net nic

結果は次のようになりました:

QEMU 2.9.91 monitor - type 'help' for more information
(qemu) VNC server running on 127.0.0.1:5900

次に、別の端末でホストからssh経由でVMにログインしてみます。

ssh -p 5900 divija@localhost

しかし、次のエラー メッセージが表示されます:

 ssh_exchange_identification: Connection closed by remote host
  1. ポート 2222 または 5900 を使用してログインする必要がありますか? 明示的に 2222 を指定しているのに、なぜ 5900 で作成されるのですか?
  2. ポート転送なしで VM にログインする方法はありますか?

答え1

質問 1 については、qemu を使用したことがないのでよくわかりませんが、vnc サーバーに ssh しようとしているのではないかと思います (vm の出力には次のように表示されます。VNC server running on 127.0.0.1:5900また間違っているかもしれませんが、vnc サーバーに ssh することはできないと思います。Putty を使用して vnc サーバーに接続できます。

質問 2 については、ngrok を使用してポート 5900 を転送することをお勧めします。これにより、たとえば、vm: でこれを実行すると、ngrok tcp 5900ローカル ネットワーク外からそのポートにアクセスできるようになります。

関連情報