Nasıl bir ana bilgisayar aracılığıyla bir VirtualBox konuk SSH SSH için? [kapalı]


644

Windows 7 makinemde çalışan bir Ubuntu VM'im var. Web sunucusuna harici olarak SSH üzerinden erişebilmem için nasıl ayarlarım?

Ana bilgisayarımdan misafirime ssh yapabilmek için adımlar ( VirtualBox Ana Bilgisayar ve Konuk VM'ler arasında SSH erişimini kurun) buldum, ancak yine de yönlendiricim aracılığıyla erişme sorunuyla beni terk ediyor.

Windows makineme bir SSH sunucusu yükleyebileceğimi ve sonra birkaç kez tünelleyebileceğimi varsayalım (yerel, dinamik, vb.Neden ne kullanacağımdan veya birden fazla tünelin nasıl kurulacağından% 100 emin değilim) ancak VM'yi doğrudan yönlendiricime erişilebilir hale getirmenin bir yolu var mı?


3
Vagrant (bir yapılandırma dosyasından veya GUI'den hazır VM'leri (ssh erişilebilir, ip erişilebilir) oluşturur) kullanarak bunu yapmanın çok daha kolay bir yolu vardır. Kullanım durumunuzu bilmiyorum, ancak Vagrant ile ssh erişilebilir bir Ubuntu sunucusu VM'si nasıl oluşturulur , LAMP tabanlı bir geliştirme makinesi kurmak istediğinizde yararlı olan büyük bir öğretici yazdım .
Sliq

1
Vagrant harika bir araçtır, ancak virtualbox'ın en yeni sürümleriyle uyumlu değildir
LizH

2
En iyi cevap daha da aşağı: stackoverflow.com/a/10410527/2214806
Michael


Sanallaştırma alanı
realtebo

Yanıtlar:


1308

Konuk bir Linux VirtualBox VM'ye giriş yapmanın en iyi yolu bağlantı noktası iletmektir . Varsayılan olarak, NAT kullanan bir arabiriminiz olmalıdır . Ardından ayarlarına gidin ve Bağlantı Noktası Yönlendirme düğmesini tıklayın. Yeni bir Kural ekleyin . Kural adı olarak "ssh" yazın. "Ana bilgisayar bağlantı noktası" olarak, 3022'yi ekleyin. "Konuk bağlantı noktası" olarak, 22'yi ekleyin. Kuralın dışındaki her şey boş bırakılabilir.

veya komut satırından

VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"

burada 'myserver' oluşturulan VM'nin adıdır. Eklenen kuralları kontrol edin:

VBoxManage showvminfo myserver | grep 'Rule'

Bu kadar! Lütfen VM'ye bir SSH sunucusu kurmayı unutmadığınızdan emin olun :

sudo apt-get install openssh-server

Konuk VM'ye SSH'ye şunu yazın:

ssh -p 3022 user@127.0.0.1

userSanal Makinede kullanıcı adınız nerede .


24
@Keyslinger, aradığın şey bu mu? ssh -p 3022 user@127.0.0.1 Eksik olduğum ve başka bir sitede bulmaya gittiğim tek adım buydu.
D. Woods

10
Bağlantı noktası yönlendirmesini 2020'den 80'e ekledim, böylece Apache'ye 192.0.0.1:2020 kullanarak tarayıcıdan kolayca erişebiliyorum . VBoxManage modifyvm myserver --natpf1 "ssh, tcp ,, 2020,, 80"
Eduardo Russo

4
thebigdog, doğrudan başsız yapabilirsiniz: VBoxHeadless -s 'vmname'
vkostromin

4
Neden varsayılan 22 değil, 3022 numaralı bağlantı noktasını kullanıyoruz?
Seraphim

3
Hayatı kolaylaştırmak için ~ / .ssh / config dosyasını açın, aşağıdakileri Host mybox HostName 127.0.0.1 User myuser Port 3022bu dosyaya ekleyin (kendiniz girinti ekleyin), o zaman sadece ssh myboxher seferinde yapmanız gerekir :)
vancexu

129

VirtualBox içindeki bağdaştırıcı türünü köprülü olarak değiştirin ve misafiri DHCP kullanacak şekilde ayarlayın veya DHCP sınırları dışında statik bir IP adresi ayarlayın . Bu, Sanal Makinenin ev ağınızda normal bir misafir gibi davranmasına neden olur. Daha sonra bağlantı noktasını ileriye taşıyabilirsiniz.


2
Herhangi bir fikir 2 adaptör yapılandırması nasıl çalışır? Biri NAT ve diğeri Yalnızca Host?
CantGetANick

16
Bence VM'yi yerel ağda ortaya çıkarmak en iyi seçenek değil (örneğin bir ofis ağında), @vkostromin tarafından önerilen çözüm VM'nin ana bilgisayar içinde kapsüllenmesini sağlar.
Victor P.10

1
@VictorP. bir ofis ağında neden en iyi seçenek olmadığını açıklayabilir misiniz? Güvenlik nedeniyle mi yoksa?
mdo123

1
Bunun en iyi seçenek olmadığını bilmek bile, mevcut yapılandırmamda bağdaştırıcıyı köprülü olarak ayarlayan tek çözümdür.
James

68

NAT bağdaştırıcısının tutulması ve ikinci bir yalnızca ana bilgisayar bağdaştırıcısının eklenmesi şaşırtıcıdır ve dizüstü bilgisayarlar için çok önemlidir (harici ağın her zaman değiştiği yerlerde).

http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/

Sanal kutunun kendisinde yalnızca bir ana bilgisayar ağı (GUI -> ayarlar -> ağ) oluşturmayı unutmayın, aksi takdirde konukta yalnızca ana bilgisayar arabirimini oluşturamazsınız.


2
Sadece bu cevap benim için çalıştı, başka hiçbir şey yapmadı. Ayrıca, sadece ek adaptör ekledim ve çalıştı, düzenlemeye gerek yoktu /etc/network/interfaces, teşekkürler!
kırık ayak

3
Bu en iyi cevap kabul etti. Aksi takdirde, halkaların içinden ediyoruz atlama ortak bir servis (erişmek için her zaman ssh, sftpbir standart olmayan bağlantı noktası üzerinden gitmek zorunda çünkü, vs.).
Kirk Woll


1
Bunu ayarlamak için başka bir iyi kaynak 2buntu.com/articles/1513/…
mdo123

1
@Sparkler sshd çalışıyor mu? Bağlantı noktalarını kapatan bir güvenlik duvarı var mı?
orip

23

Solaris 10 ve Ubuntu 16.04 için salt ana bilgisayar ağı ( köprülenenden daha iyi ) nasıl yapılır

Yalnızca ana bilgisayar arabirimi ekle

  1. Sanal Kutu> Dosya> Tercihler> Ağ> Yalnızca ana bilgisayar Ağları> Ekle
  2. Kapatma vm.
  3. VM'nin Ayarlar> Ağ. İlk bağdaştırıcı Nat, ikinci olarak yalnızca Host olmalıdır.
  4. Cmd.exe'yi başlatın ve çalıştırın ipconfig /all. Satırları görmelisiniz:

    Ethernet adapter VirtualBox Host-Only Network:
       ...
       IPv4 Address. . . . . . . . . . . : 192.168.59.1
    

    Konuktaki ikinci adaptör de 192.168.59 olmalıdır. *.

  5. VM'yi başlatın.

Solaris 10

  1. Ayarları kontrol edin ifconfig -a. E1000g0 ve e1000g1'i görmelisiniz. E1000g1 ile ilgileniyoruz.
  2. ifconfig e1000g down
  3. ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
  4. Bu arayüzün erişilebilir olup olmadığını ana bilgisayardan kontrol edin: ping 192.168.56.10

Yeniden başlattıktan sonra bu ayarları koru

# vi /etc/hostname.e1000g1
192.168.56.10 netmask 255.255.255.0
# reboot

Ssh hizmetini ( yönetiyor ) kök olarak oturum açacak şekilde yapılandırın (tavsiye edilmiyor)

Ssh'ın etkin olup olmadığını kontrol edin

# svcs -a | grep ssh
online         15:29:57 svc:/network/ssh:default

/ Etc / ssh / sshd_config dosyasını değiştirin.

PermitRootLogin yes

Ssh hizmetini yeniden başlat

svcadm restart ssh

Ana bilgisayardan kontrol edin

ssh root@192.168.56.10

Ubuntu 16.04

Liste arayüzleri:

ip addr

Lo, enp0s3, enp0s8 gibi üç arabirim görmelisiniz. Üçüncüsünü kullanacağız.

/ Etc / network / arayüzlerini düzenle

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

Sonra sudo ifup enp0s8. Enp0s8'in doğru adresi alıp almadığını kontrol edin. IP'nizi görmelisiniz:

 $ ip addr show enp0s8
 ...
    inet 192.168.56.10/24 brd 192.168.56.255 scope global secondary enp0s8

Değilse, koşabilirsiniz sudo ifdown enp0s8 && sudo ifup enp0s8

/superuser/424083/virtualbox-host-ssh-to-guest/424115#424115


3
Yalnızca ana makine ağınız açıksa 192.168.59.1ve 192.168.56.10statik konuk IP'si için belirlerseniz bu çalışmaz . C sınıfı alt ağ adresinin tamamı tam olarak eşleşmelidir, bu nedenle 192.168.59.10bunun yerine konuk içindeki gibi bir şey kullanmanız gerekir .
Quolonel Soruları

23

Ağ ayarlarında bir Köprülü Ağ (veya daha yeni sürümlerde "Köprü Bağdaştırıcısı") da kullanabilirsiniz . Bu, VM'nizi makinenizle birlikte bir VLAN'a yerleştirir. Böylece VM'yi bu şekilde ssh edebilirsiniz.

ssh kullanıcısı @ IP_OF_VM


Bu çözümle SSH bağlantısı LAN üzerinden geçiyor mu?
user2233706

16

Ana makinenizden VirtualBox'ta çalışan bir Ubuntu VM'sine ssh yapabilmek için, VM için iki ağ bağdaştırıcısı ayarlamanız gerekir.

Her şeyden önce, henüz değilse VM'yi durdurun.

Ardından VM'yi seçin ve VirtualBox araç çubuğundaki Ayarlar menüsünü tıklayın:

resim açıklamasını buraya girin

Adaptör 1'i kurun

resim açıklamasını buraya girin

Adaptör 2'yi kurun

resim açıklamasını buraya girin

(Not: herhangi bir bağlantı noktası yönlendirme ayarlamanıza gerek yoktur.)

Bu kadar. Kurulduktan sonra VM'nizi başlatabilirsiniz. VM'nizde ağ yapılandırması aşağıdaki gibi görünecektir ve İnternet erişiminiz de olacaktır:

resim açıklamasını buraya girin

Ayrıca ana makinenizde VM'nize ssh yapabilirsiniz:

resim açıklamasını buraya girin

SSH sunucusunun VM'de kurulu ve çalışır durumda olduğundan emin olun.

$ ps aux | grep sshd
root 864 0.1 0.5 65512 5392 ? Ss 22:10 0:00 /usr/sbin/sshd -D

Değilse, kurun:

$ sudo apt-get install openssh-server

Ayrıca bilgi için:

  • VirtualBox sürümüm: 5.2.6 r120293 (Qt5.6.2), 2018
  • Ubuntu sürümüm: Ubuntu 16.04.3 LTS
  • Ana bilgisayarım: Windows 10

Yalnızca ana bilgisayar bağdaştırıcınız yoksa, aşağıdakilerden birini oluşturabilirsiniz:File > Host Network Manager > Create
Cirelli94

Ne yazık ki internet ağına ulaşmıyor
Cirelli94

5
SSH İNTERNET'ten Evinize / Ofisinize VirtualBox Konuk Makinenize Geri Dönün

Burada diğer kullanıcılar tarafından verilen cevaplar: How to SSH to a VirtualBox guest externally through a host?

... internetten ev bilgisayarımın konuk makinesine bağlanma görevini yapmama yardımcı oldu. Bilgisayarları, tabletleri ve akıllı telefonları (android, IPhone vb.) Kullanarak bağlanabilmeniz gerekir. Başka birine yardımcı olması için birkaç adım daha ekliyorum:

İşte kurulumumun hızlı bir şeması:

  • Remote device ---> INTERNET --> MODEM --> ROUTER --> HOST MACHINE --> GUEST VM

  • Remote device (ssh client) ---> PASS THRU DEVICES ---> GUEST VM (ssh server)

  • Remote device (leave ssh port 3022) ---> INTERNET --> MODEM --> ROUTER (FWD frm:p3022 to:p3022)--> HOST MACHINE (FWD frm:p3022 to:p22) --> GUEST VM (arrive ssh port 22)

Benim için anahtar, TÜM bağlantıların PASSING-THROUGHuzaktaki bilgisayarımdan evdeki konuk sanal makineme ulaşmak için aracı cihazlar olduğunu fark etmekti - Bu nedenle port yönlendirme!

Notlar: * Güvenli bağlantı işlemek için ssh istemcisi ve güvenli bağlantıyı işlemek için çalışan bir ssh sunucusu gerekir.

  • 3022 numaralı portu seçilen cevapta kullanılan şekilde yukarıdan ileteceğim.

  • IP'lerinizi gereken yere girin (ev modemi / yönlendirici, ana bilgisayar IP'si, konuk IP'si vb.), Seçilen adlar yalnızca örnek kullanım veya değişikliktir.

Modeminizin IP / yönlendiricisinin harici IP adresinde 3022 numaralı bağlantı noktasına ssh tüneli oluşturun.

ssh client/device possible commands: ssh -p 3022 user-name@home_external_IP

2.Port ileri = yönlendiriciden ana makineye bağlantıdan geçiyoruz

  • Ayrıca yönlendiricideki güvenlik duvarı / IPtable kurallarının bağlantı noktalarının iletilmesine izin verdiğinden emin olun (gerekirse açık)

  • Yönlendiricinin Pfwd SCREEN gerekli girişleri: AppName: SSH_Fwd, Port_from: 3022, Protokol: her ikisi de (UDP / TCP), IP_adresi: hostIP_adresi, Port_to: 3022, diğer her şey boş olabilir

DD-WRT yönlendirici yazılım kaynakları / Bilgi:

3.Host Makine Güvenlik Duvarı: açık port 3022 # böylece yönlendirilen port konuk makineye geçebilir

  • Ana Makine: Henüz yapılmadıysa, VirtualBox, konuk eklemeleri ve konuk makinesini kurun

  • Konuk makinesini yapılandırın ve ardından aşağıdaki Ağ bölümünü takip edin

  • Konuk ağını kurmak için VirtualBox GUI kullandım - CLI'den daha kolay

  • Başka yöntemler kullanmak istiyorsanız, şuraya bakın: VirtualBox/manual/ch06.html#natforward

4.Bazı konuklar için LAN Bridge adaptörünü kullanmanızı öneririz = LAN'a ve LAN'ınızdaki diğer makinelere erişim. Bu ayrıca güvenlik riskini de arttırır, çünkü artık konuk makineniz artık güvenlik duvarının düzgün şekilde kurulmaması durumunda LAN makinelerine ve muhtemelen İNTERNET hacker'larına maruz kalmaktadır. Bu yüzden köprülü güvenlik risklerine daha az maruz kalmak için NAT'a bağlı Ağ bağdaştırıcısını seçtim.

Konuk makinede aşağıdakileri yapın:

  • Guest Machine VirtualBox Ağ ayarları: Adaptör 1: NAT'a bağlı
  • Konuk Makinesi VirtualBox Bağlantı Noktası Yönlendirme Kuralı: Adı: External_SSH, Protokol: TCP, Ana Bilgisayar Bağlantı Noktası: 3022, Konuk Bağlantı Noktası 22, Ana Bilgisayar ve konuk IP'leri: boş bırakın
  • Ağ bölümünde önceden tıklayın, ardından kuralları girmek için Bağlantı noktası yönlendirme'yi tıklayın
  • Konuk Makine Güvenlik Duvarı: açık bağlantı noktası 22 #so ssh bağlantısı girebilir
  • Konuk Makinesi: ssh sunucusunun kurulu, doğru yapılandırılmış ve çalışıyor olduğundan emin olun
  • Ssh sunucusunun w / command ile çalışıp çalışmadığını görmek için LINUX testi: sudo service ssh status
  • Konuk makinesinde 22 numaralı bağlantı noktasına bağlantının yapılıp yapılmadığını görmek için netstat'ı kontrol edebilir

Ayrıca platforma bağlı olarak farklı ssh sunucuları ve istemcileri vardır.

  • wikipedia/Secure_Shell
  • wikipedia/Comparison_of_SSH_servers
  • wikipedia/Comparison_of_SSH_clients

Ubuntu Kullanıcıları için:

  • ubuntu community: SSHOpenSSH/Configuring
  • ubuntu/community: OpenSSH/Keys

Öyle olmalı. Bir hata yaptım ya da bir şey eklemek istersem -bunu yapmaktan çekinmeyin- hala bir çaylağım.

Umarım bu birine yardımcı olur. İyi şanslar!


5

Windows ana makinesi için şunları yapabilirsiniz:

  1. Sanal kutu yöneticisinde:
    1. sanal kutu yöneticinizde ctrl+ Gişaretini seçin ,
    2. sonra ağ paneline git
    3. özel ağ ekle
      1. DHCP'yi etkinleştir seçeneğinin seçili olmadığından emin olun
  2. Ağ yönetiminde (Windows)
    1. Yeni oluşturulan sanal kutu yalnızca ana bilgisayar bağdaştırıcısını ve fiziksel ağ kartını seçin
    2. Sağ tıklayın ve "Köprü yap" ı seçin
  3. Zevk almak

4

Ayrıca Misafirinizden HOST'UNUZA VEYA DİĞER SUNUCULAR İÇİN bir bağlantı noktası başlatabilirsiniz. Bu, özellikle Misafiriniz 'kilitliyse' veya ModifyVM seçeneğini (örneğin VBoxManage için izin yoksa) tamamlayamıyorsa yararlıdır.

Üç küçük gereksinim şunlardır: 1) VirtualBox Guest'te oturum açabilirsiniz / oturum açabilirsiniz ('console' GUI, başka bir Guest, vb. Aracılığıyla), 2) VirtualBox HOST (veya diğer Sunucu) üzerinde bir hesabınız varsa ve 3) SSH ve TCP yönlendirme engellenmez.

3 gereksinimi karşılayabileceğinizi varsayarsak, bunlar şunlardır:

  1. netstat -rnMisafir'de, varsayılan rota hedefi 0.0.0.0 olan Ağ Geçidi adresini çalıştırın ve bulun. Diyelim ki "10.0.2.2". Bu 'Ağ Geçidi' adresi, VirtualBox Ana Bilgisayar sanal IP (ler) inden biridir.
  2. ssh -R 2222:localhost:22 10.0.2.2Misafir'de , "10.0.2.2" nin VirtualBox sunucusunun IP adresi -VEYA- olduğunu, yönlendirmek istediğiniz diğer herhangi bir sunucu IP'sini çalıştırın.
  3. Ana Bilgisayarda, ssh 10.0.2.2 -p222210.0.2.2'nin 1. adımda bulunan varsayılan ağ geçidi / VBHost sanal IP olduğu yerlerde çalıştırın. Bağlantı noktası yönlendirdiğiniz VirtualBox ana bilgisayarı DEĞİLSE, komutssh localhost -p2222

4

Macun kullanarak ana makineden sanal kutuda çalışan ubuntu VM'nizde oturum açmak için aşağıdaki adımları izleyin (Bağlantı noktası iletme olmadan):

  1. Virtualbox yöneticisinde vm'yi seçin, ayarlar simgesine tıklayın. Ardından Ağlar'a gidin ve aşağıdaki gibi iki adaptörü etkinleştirin:

    • Adaptör 1 (İnternet erişimi için): -> NAT, Gelişmiş -> Bağlı kabloyu kontrol edin.
    • Bağdaştırıcı 2: -> Yalnızca ana bilgisayar bağdaştırıcısına bağlı, Gelişmiş -> Bağlı kabloyu ve Geçici modu kontrol edin -> Tümüne izin ver.
  2. Ubuntu vm'yi başlatın.

  3. VM'ye root olarak giriş yapın.
  4. '/ Etc / network / interfaces' dosyasını aşağıdaki gibi düzenleyin ve kaydedin:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet dhcp
    
  5. VM'yi yeniden başlatın.

  6. VM'ye giriş yapın ve eth1'e ayrılan IP'yi kontrol etmek için aşağıdaki komutu çalıştırın:

    ifconfig
    
  7. VM için macun oturumu açmak için bu IP'yi kullanın.



2

Ubuntu 18.04 LTS

Sunucu ipini görmek ve "port yönlendirme" olmadan bağlanmak için köprülü yapılandırma

VirtualBox> sunucuya sağ tıklayın> ayarlar> Ağ> adaptör 2'yi etkinleştir> "köprülü" seçeneğini seçin> Karmaşık mod: hepsine izin ver> Bağlı kabloyu kontrol et> sunucuyu başlat

Ubuntu sunucusunda sudo nano /etc/netplan/*init.yamldosyayı düzenle ,

Örnek dosyam:

network:
    ethernets:
        enp0s3:
            addresses: []
            dhcp4: true
        enp0s8:
            addresses: [192.168.0.200/24]
            dhcp4: no
            dhcp6: no
            nameservers:
               addresses: [8.8.8.8, 8.8.4.4]
    version: 2

Size yardımcı olacak komutlar

nano /etc/netplan/file.yaml     # file to specify the rules of network
reboot now                      # restart ubuntu server right now
netplan apply                   # do after edited *.yaml, to apply changes
ifconfig -a                     # show interfaces with ip, netmask, broadcast, etc...
ping google.com                 # to see if there is internet

NetPlan ile Ubuntu 18.04 LTS Sunucusunda Statik IP Adreslerini Yapılandırma


0

Sadece Ağ Ayarını köprülü olarak ayarlamak benim için hile yaptı.

Bunu yaptığınızda IP'niz değişecektir. Ancak, benim durumumda hemen değişmedi. ifconfigaynı ipi döndürdü. Vm ve boom'u yeniden başlattım, ip 192 ile bir başlangıç ​​yaptı. * Ve hemen ssh erişimine izin verildi.


Tahmin ettiğim bu bilgiler, genel anlamda kısmen ya da tamamen yanlış, hiçbir fikrim yok. downvoter demeye zahmet etmedi.
boulder_ruby

"Bazıları için işe yaramaz."
boulder_ruby

0

Güvenli ağlarda ağınızı köprüye ayarlamak işe yaramayabilir. Anahtarlar bir bağlantı noktasında birden çok mac algıladığında, yöneticiler bağlantı noktası başına yalnızca bir mac adresine izin verebilir veya bağlantı noktasını daha da kötüleştirebilir.

Bence en iyi çözüm, makinelerinizde çalıştırmak istediğiniz ek hizmetleri yönetmek için ek ağ arayüzleri kurmaktır. Bu yüzden, dizüstü bilgisayarımı eve götürdüğümde ve ağımdaki diğer cihazlardan SSH yapabileceğim bir köprü arayüzüne ve ayrıca bağlandığımda dizüstü bilgisayarımdan VM'ye SSH eklemek istediğimde sadece bir ana adaptöre sahibim kampüste eduroam wifi ağına.


0

NAT ağ bağdaştırıcısını kullanın ve Bağlantı noktası ileri ekleyin. Gerçek ana bilgisayar ipinden bahsedin. 127.0.0.1 veya localhost kullanmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.