Mencoba SSH ke VM Ubuntu lokal dengan Putty


145

Saya telah menyiapkan VM server Ubuntu, telah menginstal OpenSSH, dan sekarang saya mencoba untuk terhubung menggunakan Putty. Di dalam Putty, di bawah "Nama host", saya meletakkan "Ubuntu", mengingat ini adalah apa yang saya pikir itu disebut ketika saya mengatur VM. Namun, saya hanya mendapatkan kesalahan: "Koneksi Timed Out".

Saya juga mencoba memasukkan "127.0.0.1" ke nama host dalam Putty dan baru saja mendapatkan "Sambungan yang Ditolak". Perhatikan bahwa saya telah melakukan port forwarding untuk SSH dan HTTP dalam Oracle VM, jadi saya bingung bagaimana cara menjalankannya.


FWIW menjembatani / host saja tidak bekerja untuk saya, tapi saya bisa mengatasinya dengan, pada dasarnya, hanya SSH'ing "out" (scp bisa berjalan dua arah, setelah semua) jadi saya tidak perlu akses SSH di dalam tamu.
rogerdpack

Jawaban:


183

VirtualBox akan membuat jaringan pribadi (10.0.2.x) yang akan terhubung ke jaringan host Anda menggunakan NAT . (Kecuali jika dikonfigurasi sebaliknya.)

Ini berarti bahwa Anda tidak dapat secara langsung mengakses host dari jaringan pribadi dari jaringan host. Untuk melakukannya, Anda memerlukan penerusan porta. Dalam preferensi jaringan VM Anda, Anda dapat, misalnya, mengkonfigurasi VirtualBox untuk membuka port 22 di 127.0.1.1 ( alamat loopback dari host Anda) dan meneruskan lalu lintas ke port 22 dari 10.0.2.1 (alamat internal VM Anda)

Dengan cara ini, Anda dapat mengarahkan dempul ke Port 22 dari 127.0.1.1 dan VirtualBox akan mengalihkan koneksi ini ke VM Anda di mana ssh daemon akan menjawabnya, memungkinkan Anda untuk masuk.


20
Terima kasih, ini berhasil untuk saya. Dari cygwin saya bisa sekarang ssh username@127.0.1.1dan saya masuk. Panel yang Anda butuhkan adalah Pengaturan-> Jaringan-> Port Forwarding, dan milik saya sekarang terlihat seperti yang ditunjukkan di: imgur.com/BjGh3N2
user7543

38
Ini TIDAK akan berfungsi jika Anda sudah menjalankan ssh di host Anda karena port-portnya bertumpang tindih. Redirect port 127.0.1.1.2222 ke 10.0.2.X: 22 dan kemudian jalankan 'ssh 127.0.1.1 -p 2222' dari host Anda '
dzlatkov

8
Juga, pastikan Anda memiliki openssh-server yang diinstal pada OS klien. sudo apt-get install openssh-server
Illuminati

17
Baru saja mengalami masalah ini sendiri - terima kasih atas penjelasannya. Saya pada dasarnya mengikuti apa yang Anda katakan. Saya pergi ke Pengaturan dan koneksi saya menunjukkan 'NAT'. Saya mengklik opsi 'port forwarding' di bagian bawah layar. Saya memberinya nama 'Putty-port-fwd', protokol TCP, host IP 127.0.0.1 host port 2222 guest IP 10.0.2.15 guest port 22. Saya kemudian meluncurkan Putty dan mengaturnya ke 127.0.0.1 port 2222 dan terhubung ke OpenSUSE vm saya. Terima kasih teman-teman, harap ini membantu siapa pun di masa depan ;-)
BubbleMonster

3
Ini bekerja untuk saya, meskipun saya harus memberitahu VirtualBox untuk membuka port 2222 pada 127.0.0.1. Kemudian saya bisa masuk menggunakanssh -p 2222 user@127.0.0.1
mchen.ja

44

Saya ingin menggunakan dempul untuk terhubung ke ubuntu saya di kotak virtual (alasan kenyamanan, VB hanya aneh. Saya tidak bisa bekerja kecuali pada terminal yang tepat). Bagaimanapun,

  1. Pastikan klien ssh terinstal di Linux Anda. Jika tidak, instal sudo apt install ssh.
  2. Matikan OS.
  3. Sekarang pada VB Anda pergi ke Settings -> Network ->atas Adapter 1memilih Host-only adapter-> klik OK.
  4. Sekarang mulai OS Anda. Jalankan ifconfig; sekarang alamat inet adalah IP Anda.
  5. Gunakan ini dan jalankan di dempul Anda. Login dengan kredensial Anda.

Satu-satunya kelemahan menggunakan adaptor hanya host adalah bahwa OS tamu Anda tidak akan memiliki akses ke jaringan yang lebih luas (misalnya Internet).

Jika Anda juga membutuhkan VM Anda untuk memiliki akses internet, biarkan Adapter 1 sebagai NAT dan aktifkan Adapter 2, dikonfigurasi sebagai adaptor Host-Only. Ini akan memungkinkan VM Anda untuk terhubung ke internet menggunakan NAT serta membuat koneksi lokal ke Host Anda menggunakan Host-Only.


4
"bridged" akan menempatkan ip pada antarmuka lokal Anda dan menjembatani akses ke internet yang lebih besar
Duke

2
Keuntungan menggunakan dua antarmuka, seperti dijelaskan di sini, lebih dari bridged, adalah bahwa Anda tidak bergantung pada server dhcp lokal yang menerima permintaan Anda. Sebagian besar server dhcp di tempat-tempat umum (ariport, pesawat terbang, hotel, dan bahkan sebagian besar jaringan perusahaan) tidak akan menawarkan ip kedua melalui adaptor wifi yang sama, sehingga VM yang dijembatani tidak akan bekerja di lingkungan tersebut. Berikut ini adalah langkah-demi-langkah yang sangat baik tentang cara mengatur konfigurasi khusus ini: christophermaier.name/2010/09/01/…
Yves Dorfsman

Bekerja seperti jimat, tetapi Anda harus meletakkan Adaptor 2 pada opsi ke-3 sehingga orang meninggalkan NAT sendirian
user3502626

Terima kasih banyak.
Luke

Terima kasih banyak. tapi ketika saya mengubah pengaturan Ubuntu Network dari NATke host only adaptertidak dapat terhubung ke internet lagi, solusi?
Luke

19

Pertama, Anda perlu memutuskan apakah VM Anda terhubung ke mesin host Anda melalui koneksi jembatan atau melalui NAT, tetapi cara lain Anda harus meletakkan alamat IP VM di dempul untuk dapat terhubung ke ip, dalam menjalankan terminal VM perintah ini untuk menunjukkan alamat IP mesin (dan tidak ada 127.0.0.1 bukan alamat IP mesin)

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

dalam hal ini alamat IP saya akan oleh 10.0.2.15,

Pertama coba pastikan Anda dapat berkomunikasi pada tingkat dasar dengan VM, buka jendela terminal pada host Anda, dan coba ping VM

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

Jika Anda mendapatkan hasil semut, maka pastikan Anda memiliki layanan ssh yang berjalan pada VM, di terminal pada tipe VM Anda sebagai root,

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

Ini menunjukkan bahwa kami memiliki layanan / proses dengan PID (2361) yang disebut sshd (OpenSSH daemon) mendengarkan port 22.

Anda dapat menguji apakah layanan bekerja dengan benar dengan mencoba ssh untuk itu dari VM itu sendiri,

VM # ssh 127.0.0.1

Selanjutnya Anda harus memastikan bahwa Anda tidak memblokir port 22 di firewall / iptables Anda, saya tidak percaya begitu, tetapi periksa saja. Dalam VM ketik perintah ini untuk menampilkan iptables,

VM # iptables -nvL INPUT

dalam output Anda harus memiliki baris seperti ini:

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

Sudah mencobanya, dan ternyata alamat ip saya adalah 10.0.2.15. Saya mencoba memasukkan itu ke dalam Putty dan baru saja mendapatkan connection timed outkesalahan lagi. Saya juga mencoba nvLperintah yang Anda sebutkan, dan mendapatkan banyak (karena tidak ada kata yang lebih baik) - Chain INPUT (policy accept......, chain FORWARD.....dll
wickywills

Saya menulis ulang jawaban saya dengan beberapa poin lagi yang dapat Anda periksa, tolong beri tahu saya.
Rabin

2
Bagaimana jika ping 10.0.2.15 kali habis? Saya menggunakan NAT.
Dan Dascalescu

Port forwarding adalah jawabannya.
Dan Dascalescu

Untuk kenyamanan: iptables -A INPUT -p tcp --dport ssh -j ACCEPTakan memungkinkan lalu lintas masuk jika Anda tidak melihat tcp di iptables Anda.
Eric Hodgins

15

Resolusi saya mirip dengan Roman T namun saya perlu menambahkan beberapa langkah tambahan. Dalam kasus saya, saya menjalankan Ubuntu Server 14 VM di Windows 8 Desktop di domain Windows 2008. Jika saya mencoba NAT atau Bridge saya dapat mengakses Internet tetapi tidak dapat terhubung melalui SSH.

Jika saya mencoba Host Only Adaptor maka itu akan memungkinkan saya untuk SSH ke mesin tetapi tidak dapat mengakses Internet.

Saya mencoba Port forwarding juga dan tidak ada sukacita. Membuka Wireshark dan tidak menemukan VM.

Jadi solusi saya adalah menambahkan adapter jaringan kedua.

metode

Dengan VM dimatikan

  1. Klik Pengaturan> Network Click Adapter 1 dan pilih Bridged Adapter
  2. Klik Adapter 2 dan pilih Host Only Adapter
  3. Klik File> Preferensi> Jaringan Dalam Jaringan NAT jika Anda tidak melihat Jaringan NAT klik ikon + untuk menambahkan Jaringan NAT.
  4. Klik Host-Only Networks jika Anda tidak melihat ikon klik + hanya host jaringan untuk menambahkan satu

Mulai VM

  1. Untuk melihat adaptor jaringan, Anda perlu mengetik

    ifconfig -a
    
  2. Anda mungkin melihat adapter jaringan ditambahkan dengan alamat mac tetapi bukan IP?

  3. Jika demikian maka Anda perlu mengedit / etc / network / interfaces untuk mengkonfigurasi DHCP. Contoh di bawah ini menggunakan VI / VIM tetapi Anda dapat menggunakan editor pilihan Anda

    sudo vi /etc/network/interfaces
    
  4. tambahkan baris

    auto eth1
    iface eth1 inet dhcp
    
  5. simpan dan keluar file.
  6. Kemudian coba restart layanan jaringan menggunakan perintah di bawah ini

    sudo service networking restart
    
  7. Atau jika itu gagal maka restart VM.
  8. Setelah restart ketik di bawah untuk melihat apakah Anda eth1 telah dialokasikan alamat IP

    ifconfig -a
    
  9. jika demikian maka lihat apakah Anda dapat SSH ke VM

Saya telah mencoba solusi Anda, tetapi tidak ada IP yang ditugaskan untuk antarmuka baru. Terlebih lagi saya memiliki DHCP diaktifkan di VBox saya.
Athlan

12

Petunjuk berikut ini berfungsi dengan Ubuntu 14.04 dan Oracle VirtualBox 4.3.30.

Lakukan ini di VirtualBox:

  1. Klik kanan mesin virtual Anda, pilih "Pengaturan", lalu pilih "Jaringan".

  2. Di sebelah "Terlampir ke", pilih "Host-only Adapter". Sebagai catatan tambahan, "Bridged Adapter" juga akan berfungsi, periksa dokumentasi VirtualBox untuk detail lebih lanjut tentang setiap opsi.

Lakukan ini di dalam Mesin Virtual Anda:

  1. Temukan alamat IP jaringan Anda dengan membuka terminal dan mengetik ifconfig. Amati alamat IP yang ditampilkan di sebelah eth0, di bawah "inet addr". Anda juga dapat melihat alamat IP Anda jika Anda mengklik ikon Jaringan di sudut kanan atas desktop Anda, dan kemudian pilih "Informasi Koneksi".

  2. Instal openssh-server dengan mengetik berikut ini di terminal:

    sudo apt-get install openssh-server
    
  3. Untuk berjaga-jaga, restart mesin virtual.

Sekarang Anda dapat terhubung dari Putty menggunakan alamat IP dari langkah 1 di atas dan port 22.


2

Untuk Ubuntu 18.04 dan VirtualBox 5.2:

  1. Buat Antarmuka Jaringan Host

    saya. Pada Virtualbox, klik File/ Host Network Manager.

    ii. Jika Anda belum memiliki adaptor Jaringan Host (default vboxnet0), klik Create.

  2. Aktifkan pengaturan Adaptor khusus Host untuk VM

    saya. Di Virtualbox, klik kanan pada VM Anda dan pilih Settings.

    ii. Klik Networkdan pilih Adapter 2.

    aku aku aku. Klik Enable Network Adapter.

    iv. Di bawah Attached to:pilih Host-only Adapter. Nama adaptor yang Anda buat pada langkah 1 akan muncul (default vboxnet0).

  3. Konfigurasikan pengaturan jaringan di VM

    saya. Mulai VM dan periksa yang antarmuka telah ditambahkan: ip a. Cari antarmuka yang tidak memiliki inetalamat. Milik saya, itu enp0s8.

    ii. Edit /etc/netplan/01-netcfg.yaml. mis sudo vi /etc/netplan/01-netcfg.yaml.

    aku aku aku. Di bawah pengaturan untuk adaptor asli, tambahkan detail konfigurasi:

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

    Ini memberikan alamat ip statis untuk VM Anda untuk kenyamanan SSH. Jika Anda ingin dhcpmenangani pengalamatan, tinggalkan alamat dan konfigurasi gateway dan set dhcp4ke yes.

    iv. Reload file konfigurasi: sudo netplan apply.

  4. SSH ke VM Anda

    saya. Jika Anda belum menginstal sshdi VM: sudo apt install ssh.

    ii. Dari mesin host Anda, SSH ke VM: ssh <username>@192.168.56.2.


Terima kasih, selamat hari saya!
anber
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.