web-dev-qa-db-ja.com

SSHトンネル経由でローカルKVMゲストに接続する方法

Debianでの仮想化にはVirt-managerを使用しています。リモートSSHトンネルを介してゲストに接続したい。ゲストはローカルのDebianマシンにもいます。これは可能ですか?

私はすでにこのコマンドを試しました ここ

ssh -f -L 5900:localhost:5900 USERNAME@REMOTE-PC-B-PUBLIC-IPADDRESS -N -p 22

ただし、次のメッセージが表示されます。

bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 5901
Could not request local forwarding.

そこで、ローカルポートをこれに変更しました。

ssh -f -L 5920:localhost:5900 USERNAME@REMOTE-PC-B-PUBLIC-IPADDRESS -N -p 22

動作しているようです。エラーメッセージはありません。

今、私はVinagreを使用してlocalhost:5900でゲストに接続します。そして、ウィンドウが表示されています。

トラフィックはまだSSHトンネルを通過していますか?

window

Vinagreには、SSHホストを追加するためのファイルもあります。ただし、そこにドメイン/ IPを入力すると、パスワードの入力を求められます。接続が閉じられるたびに入力すると。そのための提案はありますか?

SpiceまたはVNCオプションを使用する必要がありますか?

私はこれを修正するために2日からグーグルで検索しました。

そのため、他の人がローカルマシンと(ローカル)ゲストマシンの間に暗号化されたSSHトンネルを作成する方法と、それに接続する方法に興味があります。

2
James Creaton

そのため、他の人がローカルマシンと(ローカル)ゲストマシンの間に暗号化されたSSHトンネルを作成する方法と、それに接続する方法に興味があります。

それは本当にユースケースが何であるかに依存します。コマンドを投稿したばかりですが、情報がありませんwhere実行しますか。これは非常に重要です。だから私はそれをまっすぐにしましょう。同じネットワーク(基本的には仮想ネットワーク)上にGUESTマシンとHostマシンがあります。 pingsshを相互に切り替えることができます。そして、2つの可能性があります。

  • 実行localHostマシンからのポート転送:

    ssh -f -L 5920:localhost:5900 GUEST_USER@GUEST_IP -N
    
  • 実行リモートGUESTマシンからのポート転送:

    ssh -f -R 5920:localhost:5900 Host_USER@Host_IP -N
    

次に、ソフトウェアを使用してlocalhost、ポート5920に接続し(スクリーンショットのように5900を配置)、このポートへのすべてのトラフィックをGUESTポート5900に転送する必要があります。


とにかく、これは必要ないと思います。ホスト-ゲスト接続を確立する場合は、仮想ネットワークを離れることはなく、高価暗号化を行う必要はありません。サービスが外部IPでリッスンしている場合は、GUEST-IP:5900に直接接続できるはずです。

1
Jakuje

SshキーがVMのホスト(上記の例の172.18.10.184)にあることを確認してください!チューニングが必要な場合の拡張

私の場合、VMのホストにWebから直接アクセスできないため、sshポート転送を実行しました。

ssh -L 10023:172.18.10.184:22 myPlaceToGo -p2222

その後

virt-viewer --connect qemu+ssh://myUsr@localhost:10023/system 2

いくつか ssh -10023 myPlaceToGoパスワードの入力を求めなくても機能するはずです

0

Virt-viewerを使用できますか?

virt-viewer --connect qemu + ssh:// root @ KVM_Host:22/system VM_NAME

その後、sshトンネルをいじる必要はありません

0
Marcus