web-dev-qa-db-ja.com

VMWareゲストVMにSSH接続できるように設定するにはどうすればよいですか?

何らかの理由で、インターネット上でのこのプロセスに関するドキュメントは非常に不足しているか、古くなっています。基本的に、VMWare Fusion(Ubuntu 10.10を実行)にゲストVMWare仮想マシンがあり、ホストとしてMac OSX 10.6があります。 MacからLinux VMにSSH接続できるようにしたい。これを可能にするにはどうすればよいですか?

16
Derek Thurn

絶対に-それは、ローカルインターフェースまたはブリッジインターフェースを使用し、sshサーバーを実行しているシステムのIPアドレスを(ifconfigコマンドを使用して)計算するだけの問題です。 VMにopenssh-serverをインストールし、sshクライアントを使用します。

NATインターフェースを使用している場合、より複雑になる可能性があり、一般的には推奨されません。

13
Journeyman Geek

実際、ブリッジインターフェースではなく、VMでNATを使用するのには十分な理由がたくさんあります。(これは古い質問ですが、方法を検索する最初の結果として出てきました。これを行い、VirtualBoxから移行します。いつも行っているので、追加する価値があると思いました)

NATを使用する理由はいくつかあります:

  • 簡単でポータブルです
  • iPを取得するために既知のMACアドレスを必要とするカスタマーLANを使用している場合(そうでない場合は、未使用のIPアドレスを推測して競合の危険を冒し、一般的に自分自身に悪い注意を引く必要があります:))、
  • vMがホスト上の単一のプロキシサーバーを使用できるようにする(IEを使用しているネットワークを制御していない場合)、またはブロードキャスト(ウィンドウなど)トラフィックを1つの方法でファイアウォール/フィルターできるようにする便利な場所。
  • ホストの外部から名前/ IPでそれらを参照できるように固定または予約済みのIPを割り当てることができる(ここでも、ブリッジインターフェイスでネットワーク上で予約を取得できない場合)
  • しかし何よりも、すべてのVMを "ワイルドに公開するのではなく、ホスト上の単一のファイアウォール構成の背後に隠して、より保護された方法でそれらの間で物事を共有することができます"そして、それらすべてを個別に保護する必要があります。インターネットモデム/ルーターの場合と同じように

とにかく、私の場合(VMWareワークステーション10、Linuxホスト、OS Xゲスト)、およびこれに遭遇した人にとって、これは私にとって何が効果的だったかの概要です。ワッフルとwhat-ifを除いて、主なステップは3つだけです。

  • したがって、最初に、ホストの「外部」からVM /ゲストに許可するものを決定する必要があります(以下のように、ホスト自体から簡単にアクセスできるようになります)。安全な策は、SSH(ポート22)のみをサブネット上のマシンに公開/許可することです。 VMなどにウェブサーバーがある場合は、ポート80/443を許可することもできます。また、「トンネル」を使用して、SSHを使用して他のサービスにアクセスし(以下の例を示します)、Fuse/SSHFSを使用してホストにアクセスすることもできます。 filesystem access ..(またはVMWareの共有フォルダー機能ですが、まだ使用していません)。

したがって、アイデアは次のようになります。「ホストのローカルネットワーク(例:10.1.1.0/24または192.168.1.0/24)でホストのポート22222に接続することを許可します。これをポート22に転送します。特定のゲスト」。もちろん、特定のゲストである必要があります(これにより、IPをより便利に構成できるようになり、各VMを開かなくても、すべてを1か所で変更できるようになりました)。などを介して.

  • 次に、どのサービスを決定したら、次のことを行う必要があります。

    • ホストマシンでiptables/firewallを介して「外部」ポートへの接続を許可します。ポート22はsshdによってホストですでに使用されている可能性があるため、22222のようなものを使用する可能性があります。この場合、/ etc/ufw/before.rulesにこのようなものを追加します(そしてufwを再起動します)。

      #ローカルネットワーク/サブネットマスクは10.1.1.0/24 ...のようになります。

      -A ufw-before-input -p tcp --dport 22222 -m state --state NEW -s my_subnet_and_mask -j ACCEPT `

    • メインのVMware DHCP構成でVMに予約済みIPを指定します(オプションですが、ホストからそれに「ピンホール」を設定したい場合は、簡単に信頼できます)。 /etc/vmware/vmnet8/dhcpd/dhcpd.confの下部

      # Just like a normal dhcpd reservation
      Host my_vm_1 {
           hardware ethernet *your_vm_eth_mac_here**;
           # This is in default range for guests, but outside the 'pool'.
           # - check that it matches your vmware config
           fixed-address 192.168.198.10; 
           # And/or your own internal nameserver etc
           option domain-name-servers 8.8.8.8;
           option domain-name "some_domain_suffix";
           # This is the default default-route of the VM
           option routers 192.168.198.2; 
      }
      
    • これを/etc/vmware/vmnet8/nat/nat.confの[incomingtcp]セクションに追加して、接続を22222からguest:22に転送するようにVMWareに指示し、次にvmwareサービスを再起動します(以下の注を参照)

      [incomingtcp]

      22222 = 192.168.198.10:22

    • また、ポート22の接続を許可する必要がある場合がありますinゲストのファイアウォールによって異なります。このOS Xゲストの場合、共有設定を介して「リモートログイン」を有効にすることでした。Linuxでは、上記のホストのようにufwを介する場合があります。

したがって、すべて完了したら、ラップトップまたはLAN上の他のマシンで22222のワークステーション(vmware Host)にSSH接続すると、転送するように指示したゲストにすすりつけられます。上記のように、ゲスト(または暗号化されていないことが多いvncサーバー)のpostgresサーバーにも接続できるようにしたい場合は、(dhcp confにも追加するのではなく)同じコマンドでトンネルできます。例えば

console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432

また、vmwareのip forwardを介してゲストにsshされ、ラップトップでpgadmin3ツールをlocalhost:54320(非特権)にポイントすると、ネットワーク上のトラフィックが暗号化されます。 ( 'localhost'は既にゲストに転送されていることに注意してください)

ノート

  • これにはさまざまな方法があります。1つは、Hostにトンネリングして-LでゲストのIPを指定するだけで、「ブレークアウト」してそこにポイントすることができますが、nat.confオプションは便利で、毎回入力する必要はありません。ポート転送には他の方法もあります
  • 私はこれを行うために仮想ネットワークguiのいくつかのスレッドを参照するのを見ました(virtualboxのように)が、このバージョンではそれを見つけることができませんでした
  • 私はウィンドウを使用しないので、ホストとして構成するのと非常に似ていると思いますが、わかりません。 NAT構成は、どのvmwareゲストでも機能するはずです(ただし、他のバージョンのVMWareは使用していません)。
  • VMwareは、ホストがNATゲストに直接連絡できるようにルートを設定します。IEホストのコンソールから、ping/sshなどを実行できますNAT guest 192.168.198.10(上記で定義))直接

    console ~> route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    <snip>
    192.168.198.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
    192.168.233.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
    
  • Linuxのノートから、systemd initを使用してvmwareをいじって `自動的にうまく起動することがいくつかあり、それに加えて、vmwareを再起動するだけでは(vmciが再度読み込まれない)、再起動する必要があることがわかりました。私のマシンは、NAT/DHCPの要素をこなすようにしていますが、問題はないかもしれません。 systemdソリューションにはいくつかのスレッドがありますが
21

物事を簡素化するには:

  1. VMを実行する
  2. メニュー> [仮想マシン]> [ネットワークアダプター]> [ブリッジ]から。
  3. VMで、linux:ifconfigなどのIPアドレスを見つけます。
  4. ホストから、ssh user@ipを使用してSSHします。

SSHサービスがインストールされ、実行されていることを前提としています。

2
zed

SSHで接続するIPを知る代わりに、動的ゲスト名をブロードキャストするようにLinuxゲストでAvahiをセットアップしました。ここで私の答えを確認してください: https://superuser.com/a/710233/242604 =

お役に立てれば!

1
berto