Putty ile yerel VM Ubuntu'ya SSH yapmaya çalışıyorum


145

Bir Ubuntu sunucusu sanal makinesi kurdum, OpenSSH'yi kurdum ve şimdi Putty kullanarak bağlanmaya çalışıyorum. Putty içinde, "Ana bilgisayar adı" altında, "Ubuntu" yu koydum, buna VM denilen zaman çağrıldığını düşündüğüm şeydi. Ancak, sadece hatayı alıyorum: "Bağlantı Zaman Aşımına Uğradı".

Ayrıca "127.0.0.1" i Putty içindeki ana bilgisayar adına koymayı denedim ve "Bağlantı Reddedildi" yi aldım. Oracle VM'de SSH ve HTTP için bağlantı noktası iletme işlemini yaptığımı ve bu nedenle nasıl çalışacağını bilmediğimi unutmayın.


FWIW köprülü / ev sahibi sadece benim için işe yaramadı, ama onunla çalışabildim, özünde, sadece "SSH'ing" out "(scp her iki yönde de gidebilirdi), böylece SSH erişimine ihtiyacım yoktu. misafirin içinde.
rogerdpack

Yanıtlar:


183

VirtualBox, NAT kullanarak ana ağınıza bağlanacak özel bir ağ (10.0.2.x) oluşturacaktır . (Başka şekilde yapılandırılmadıkça.)

Bu, özel ağın hiçbir ana bilgisayarına ana bilgisayar ağından doğrudan erişemeyeceğiniz anlamına gelir. Bunu yapmak için, bazı port yönlendirme yapmanız gerekir. VM'nizin ağ tercihlerinde, örneğin, VirtualBox'ı 127.0.1.1 (22 numaralı ana makinenin geridönüşüm adresi) olan 22 numaralı bağlantı noktasını açacak ve herhangi bir trafiği 10.0.2.1'deki 22 numaralı bağlantı noktasına (VM'nizin iç adresi) iletecek şekilde yapılandırabilirsiniz.

Bu şekilde, 127.0.1.1 numaralı Port'a bir macun uygulayabilirsiniz ve VirtualBox bu bağlantıyı, oturum açmanıza izin verecek şekilde ssh arka planının yanıtlayacağı VM'nize yönlendirecektir.


20
Teşekkürler, bu benim için çalıştı. Cygwin itibaren ben şimdi can ssh username@127.0.1.1ve ben varım İhtiyacınız paneli> Ayarlar> Network-Port Yönlendirme ve artık benim de gösterildiği görünüyor gibidir:. İmgur.com/BjGh3N2
user7543

38
Bağlantı noktaları çakıştığından ana bilgisayarınızda zaten ssh çalışıyorsa bu işe yaramayacaktır. Port 127.0.1.1:2222 - 10.0.2.X: 22'ye yönlendirin ve daha sonra sunucunuzdan 'ssh 127.0.1.1 -p 2222' komutunu çalıştırın
dzlatkov

8
Ayrıca, istemci işletim sistemine yüklenmiş openssh-server olduğundan emin olun. sudo apt-get install openssh-server
Illuminati

17
Sadece bu sorunu kendim yaşadım - açıklama için teşekkürler. Temelde söylediklerini takip ettim. Ayarlar'a gittim ve bağlantım 'NAT' gösterdi. Ekranın altındaki 'port yönlendirme' seçeneğini tıklattım. Ona "PuTTY-port-fwd", protokol TCP, IP 127.0.0.1 ana bilgisayar bağlantı noktası 2222 konuk IP 10.0.2.15 konuk bağlantı noktası 22 adını verdim. Daha sonra PuTTY'yi başlattım ve 127.0.0.1 bağlantı noktası 2222'ye ayarladım ve OpenSUSE vm. Teşekkürler çocuklar, umarım bu gelecekteki herkese yardımcı olur ;-)
BubbleMonster

3
Bu benim için çalıştı, ancak VirtualBox’a 127.0.0.1’de 2222 numaralı bağlantı noktasını açmasını söylemek zorunda kaldım. Sonra kullanarak giriş ssh -p 2222 user@127.0.0.1
yapmayı başardım

44

Sanal kutusundaki ubuntu'ma bağlanmak için macun kullanmak istedim (konfor nedenleri, VB çok garip. Uygun bir terminalde olmadıkça çalışamıyorum). Neyse

  1. Linux'unuzda ssh istemcisinin kurulu olduğundan emin olun. Değilse yükleyin sudo apt install ssh.
  2. İşletim sistemini kapatın.
  3. Şimdi VB üzerine gidin Settings -> Network ->üzerinde Adapter 1seçim Host-only adapter> tıklayın - OK.
  4. Şimdi işletim sisteminizi başlatın. Çalıştır ifconfig; şimdi girilen adres IP adresinizdir.
  5. Bunu kullan ve macunun üzerine sür. Kimlik bilgilerinizle giriş yapın.

Yalnızca ana bilgisayar adaptörünü kullanmanın tek dezavantajı, misafir işletim sisteminizin daha geniş bir ağa (örn. İnternet) erişemeyeceğidir.

VM'nizin internet erişimine de ihtiyacınız varsa, Adaptör 1'i NAT olarak bırakın ve Host-Only adaptörü olarak yapılandırılan Adaptör 2'yi etkinleştirin. Bu, VM'nizin NAT kullanarak internete bağlanmasına ve Host-Only kullanarak Host'unuzla yerel bir bağlantı kurmasına izin verecektir.


4
"köprülü" ip, yerel arayüzünüze bağlanacak ve daha büyük bir internete köprü erişimi sağlayacak
Duke

2
Burada anlatıldığı gibi, köprülü ağ üzerinden iki arabirim kullanmanın avantajı, isteklerinizi kabul eden yerel dhcp sunucusuna güvenmemenizdir. Halka açık yerlerde bulunan çoğu dhcp sunucusu (ariport, uçaklar, oteller ve hatta çoğu şirket ağı) aynı wifi adaptörüyle ikinci bir ip sunmayacaktır, bu nedenle köprülü bir VM bu ortamda çalışmayacaktır. İşte bu özel yapılandırmayı nasıl ayarlayacağınız konusunda gerçekten çok iyi bir adım adım: christophermaier.name/2010/09/01/…
Yves Dorfsman

Bir cazibe gibi çalışın, ancak Bağdaştırıcı 2'yi 3. seçeneğe
koymalısınız

çok teşekkürler.
Luke

çok teşekkürler. Ben Ubuntu Ağ ayarını değiştirdiğinizde ama NAThiç host only adaptero artık internete herhangi bir çözüm bağlanamıyorum?
Luke,

19

Öncelikle, VM'nizin ana makinenize bir köprü bağlantısı üzerinden mi yoksa bir NAT üzerinden mi bağlanacağına karar vermeniz gerekir, ancak ethernet yolu, VM terminalini çalıştırırken ip'e bağlanabilmek için VM IP adresini macun haline getirmeniz gerekir. makinenin IP adresini göstermek için bu komut (ve 127.0.0.1 numaralı makinenin IP adresi değil)

VM # ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:d9:16:b3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.1 scope global eth0
       valid_lft forever preferred_lft forever

Bu durumda IP adresim 10.0.2.15

Öncelikle VM ile temel düzeyde iletişim kurabildiğinizden emin olun, ana makinenizde bir terminal penceresi açın ve VM'ye ping işlemi yapmaya çalışın

HOST # ping 10.0.2.15

PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.0.2.15: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 10.0.2.15: icmp_seq=3 ttl=64 time=0.099 ms

Karınca sonucu alırsanız, VM üzerinde çalışan, ssh tipinizin terminalinde root olarak çalışan bir ssh servisinin olduğundan emin olun,

VM # netstat -lnpt | grep 22
tcp   0  0  0.0.0.0:22  0.0.0.0:*  LISTEN  2361/sshd

Bu, 22 numaralı bağlantı noktasını dinleyen sshd (OpenSSH arka plan programı) adlı PID (2361) ile bir hizmet / işlem olduğumuzu söyler.

Hizmetin VM'den kendi kendine ssh yapmaya çalışarak düzgün çalışıp çalışmadığını test edebilirsiniz,

VM # ssh 127.0.0.1

Ardından, güvenlik duvarınızda / iptable'ınızda 22 numaralı bağlantı noktasını engellemediğinizden emin olmanız gerektiğine inanmıyorum, buna inanamıyorum, ancak yine de kontrol edin. VM'de, iptables'ları göstermek için bu komutu yazın,

VM # iptables -nvL INPUT

çıktıda bunun gibi bir çizgi olmalıdır:

0  0  ACCEPT  tcp  --  *  *  0.0.0.0/0  0.0.0.0/0  tcp  dpt:22  ctstate  NEW

Denedim ve görünüşe göre ip adresim 10.0.2.15. Ona Macun'a girmeyi denedim ve connection timed outhatayı tekrar aldım . Ben de denedim nvLbahsettiğiniz komutu ve malzeme (daha iyi bir kelime eksikliği için) bir yük almak - Chain INPUT (policy accept......, chain FORWARD.....vb
wickywills

Cevabımı kontrol edebileceğiniz birkaç nokta ile tekrar yazdım, lütfen bana bildirin.
Rabin

2
10.0.2.15 pingi zaman aşımına uğrarsa NAT kullanıyorum.
Dan Dascalescu


Rahatlık için: iptables -A INPUT -p tcp --dport ssh -j ACCEPTEğer iptables içinde tcp görmezseniz gelen trafiğe izin verir.
Eric Hodgins,

15

Kararım Roman T'lere benziyordu, ancak birkaç ilave adım atmam gerekiyordu. Benim durumumda, Windows 2008 etki alanındaki bir Windows 8 Masaüstünde çalışan Ubuntu Server 14 VM vardı. NAT veya Bridge'i denediysem internete girebildim ancak SSH ile bağlanamadım.

Eğer Host Host Adapter'i denediysem, bu makineyi SSH'ye çekmeme izin verirdi fakat internete giremedi.

Port iletmeyi de sevinçle denedim. Wireshark'ı açtı ve sadece VM'yi bulamadı.

Böylece benim çözümüm ikinci bir ağ adaptörü eklemek oldu.

Yöntem

VM kapalıyken

  1. Ayarlar> Ağ Bağdaştırıcı 1'i tıklayın ve Köprülü Adaptör'ü seçin
  2. Bağdaştırıcı 2'yi tıklatın ve yalnızca Ana Bilgisayar Bağdaştırıcısı'nı seçin
  3. NAT Ağı görmüyorsanız, Dosya> Tercihler> Networks altında NAT Ağı'nı tıklatarak NAT Ağı eklemek için + simgesine tıklayın.
  4. Bir ana bilgisayar ağı görmüyorsanız, Yalnızca Ana Bilgisayar Ağlarını tıklayın, bir ağ eklemek için + simgesini tıklayın

VM'yi başlat

  1. Ağ bağdaştırıcısını görmek için yazmanız gerekir.

    ifconfig -a
    
  2. Ağ bağdaştırıcısının bir mac adresiyle eklenmiş olduğunu ancak bir IP olmadığını görebilirsiniz.

  3. Öyleyse DHCP'yi yapılandırmak için / etc / network / interfaces komutunu düzenlemeniz gerekir. Aşağıdaki örnek VI / VIM'i kullanıyor ancak istediğiniz editörü kullanabilirsiniz

    sudo vi /etc/network/interfaces
    
  4. satır ekle

    auto eth1
    iface eth1 inet dhcp
    
  5. kaydet ve dosyadan çık.
  6. Ardından, aşağıdaki komutu kullanarak ağ servisini yeniden başlatmayı deneyin.

    sudo service networking restart
    
  7. Veya bu başarısız olursa, VM'yi yeniden başlatın.
  8. Eth1'in IP adresi tahsis edilip edilmediğini görmek için aşağıya bir kez yazın

    ifconfig -a
    
  9. öyleyse bakın o zaman VM’de SSH’ye erişemiyor musunuz

Çözümünüzü denedim, ancak yeni arayüze IP atanmadı. Dahası VBox'umda DHCP etkin.
Athlan

12

Aşağıdaki talimatlar Ubuntu 14.04 ve Oracle VirtualBox 4.3.30 ile çalışmıştır.

Bunu VirtualBox'da yapın:

  1. Sanal makinenizi sağ tıklayın, "Ayarlar" ı ve ardından "Ağ" ı seçin.

  2. "Ekli" nin yanında, "Yalnızca Ana Bilgisayar Adaptörü" seçeneğini seçin. Bir yan not olarak, "Bridged Adapter" de çalışacaktır, her seçenek hakkında daha fazla ayrıntı için VirtualBox belgelerine bakın.

Bunu Sanal Makinenizde yapın:

  1. Bir terminal açıp yazarak ağ IP adresinizi bulun ifconfig. "İnet addr" altında eth0'ın yanında görüntülenen IP adresini izleyin. Masaüstünüzün sağ üst köşesindeki Ağ simgesine tıklarsanız ve ardından "Bağlantı Bilgileri" seçeneğini seçerseniz IP adresinizi de görebilirsiniz.

  2. Terminalde aşağıdakini yazarak openssh-server'ı kurun:

    sudo apt-get install openssh-server
    
  3. Sadece durumda, sanal makineyi yeniden başlatın.

Şimdi, yukarıdaki adım 1'deki IP adresini ve 22 numaralı bağlantı noktasını kullanarak PuTTY'den bağlanabilirsiniz.


2

Ubuntu 18.04 ve VirtualBox 5.2 için:

  1. Ana Bilgisayar Ağ Arabirimi Oluştur

    ben. Virtualbox'da File/ düğmesine tıklayın Host Network Manager.

    ii. Zaten bir Ana Bilgisayar ağ bağdaştırıcınız yoksa (varsayılan vboxnet0), seçeneğini tıklayın Create.

  2. VM için Yalnızca Ana Bilgisayar Bağdaştırıcısı ayarlarını etkinleştir

    ben. Virtualbox'da, VM'nize sağ tıklayın ve öğesini seçin Settings.

    ii. Tıklayın Networkve seçin Adapter 2.

    iii. Tıklayın Enable Network Adapter.

    iv. Attached to:Seçin altında Host-only Adapter. 1. adımda oluşturduğunuz adaptörün adı görünmelidir (varsayılan vboxnet0).

  3. VM'de ağ ayarlarını yapılandırma

    ben. Senin VM başlatın ve eklenmiş olan arayüz kontrol edin: ip a. inetAdresi olmayan arayüzü arayın . Benimki, öyleydi enp0s8.

    ii. Düzen /etc/netplan/01-netcfg.yaml. örn sudo vi /etc/netplan/01-netcfg.yaml.

    iii. Orijinal adaptörün ayarları altında, yapılandırma ayrıntılarını ekleyin:

    enp0s8:
        addresses: [192.168.56.2/24]
        gateway4: 192.168.56.1
        dhcp4: no
    

    Bu, VM'iniz için SSH rahatlığı için statik bir ip adresi atar. İsterseniz dhcpyerine adresleme işlemek için, adres ve ağ geçidi yapılandırma ve set dışında bırakmak dhcp4için yes.

    iv. Yapılandırma dosyasını yükle: sudo netplan apply.

  4. VM'nizde SSH

    ben. Eğer yüklemediyseniz sshVM: sudo apt install ssh.

    ii. VM içine ana makinede, SSH Gönderen: ssh <username>@192.168.56.2.


Teşekkürler, günümü kurtardım!
anber,
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.