Đang cố gắng SSH sang VM Ubuntu cục bộ với Putty


145

Tôi đã thiết lập máy ảo của máy chủ Ubuntu, đã cài đặt OpenSSH và hiện đang cố gắng kết nối với nó bằng Putty. Trong Putty, dưới "Tên máy chủ", tôi đặt "Ubuntu", với điều này tôi nghĩ nó được gọi khi tôi thiết lập VM. Tuy nhiên, tôi chỉ nhận được lỗi: "Đã hết thời gian kết nối".

Tôi cũng đã thử đặt "127.0.0.1" vào tên máy chủ trong Putty và chỉ nhận được "Từ chối kết nối". Lưu ý rằng tôi đã thực hiện chuyển tiếp cổng cho SSH và HTTP trong Oracle VM, vì vậy tôi không biết làm cách nào để chạy nó.


FWIW bắc cầu / máy chủ chỉ không hoạt động với tôi, nhưng về cơ bản, tôi chỉ có thể làm việc xung quanh nó bằng cách "chỉ có SSH" (scp có thể đi cả hai chiều) vì vậy tôi không cần truy cập SSH trong khách
rogerdpack

Câu trả lời:


183

VirtualBox sẽ tạo một mạng riêng (10.0.2.x) sẽ được kết nối với mạng chủ của bạn bằng NAT . (Trừ khi được cấu hình khác.)

Điều này có nghĩa là bạn không thể truy cập trực tiếp vào bất kỳ máy chủ nào của mạng riêng từ mạng máy chủ. Để làm như vậy, bạn cần một số cổng chuyển tiếp. Ví dụ, trong các tùy chọn mạng của VM, bạn có thể định cấu hình VirtualBox để mở cổng 22 trên 127.0.1.1 ( địa chỉ loopback của máy chủ của bạn) và chuyển tiếp bất kỳ lưu lượng truy cập nào đến cổng 22 của 10.0.2.1 (địa chỉ nội bộ của VM)

Bằng cách này, bạn có thể trỏ putty vào Cổng 22 của 127.0.1.1 và VirtualBox sẽ chuyển hướng kết nối này đến VM của bạn, nơi trình nền ssh của nó sẽ trả lời, cho phép bạn đăng nhập.


20
Cảm ơn, điều này đã làm việc cho tôi. Từ Cygwin Tôi có thể bây giờ ssh username@127.0.1.1và tôi là trong Bảng điều bạn cần là Settings-> mạng-> Port Forwarding, và tôi bây giờ trông như thể hiện tại địa chỉ:. Imgur.com/BjGh3N2
user7543

38
Điều này sẽ KHÔNG hoạt động nếu bạn đã có ssh chạy trên máy chủ của mình vì các cổng trùng nhau. Chuyển hướng cổng 127.0.1.1:2222 sang 10.0.2.X: 22 và sau đó chạy 'ssh 127.0.1.1 -p 2222' từ máy chủ của bạn '
dzlatkov

8
Ngoài ra, hãy chắc chắn rằng bạn đã cài đặt máy chủ openssh trên hệ điều hành máy khách. sudo apt-get install openssh-server
Illuminati

17
Chỉ có vấn đề này bản thân mình - cảm ơn đã giải thích. Tôi cơ bản làm theo những gì bạn nói. Tôi đã đi đến Cài đặt và kết nối của tôi hiển thị 'NAT'. Tôi đã nhấp vào tùy chọn 'cổng chuyển tiếp' ở dưới cùng của màn hình. Tôi đặt cho nó một cái tên 'PuTTY-port-fwd', giao thức TCP, máy chủ IP 127.0.0.1 cổng máy chủ 2222 khách IP 10.0.2.15 cổng khách 22. Sau đó, tôi đã khởi chạy PuTTY và đặt nó thành cổng 127.0.0.1 2222 và nó được kết nối với OpenSUSE của tôi vm. Cảm ơn mọi người, hy vọng điều này sẽ giúp được bất cứ ai trong tương lai ;-)
BubbleMonster

3
Điều này làm việc cho tôi, mặc dù tôi đã phải nói với VirtualBox để mở cổng 2222 vào ngày 127.0.0.1. Sau đó, tôi đã có thể đăng nhập bằng cách sử dụngssh -p 2222 user@127.0.0.1
mchen.ja

44

Tôi muốn sử dụng putty để kết nối với Ubuntu của mình trên hộp ảo (lý do thoải mái, VB thật kỳ lạ. Tôi không thể làm việc trừ khi nó ở trên một thiết bị đầu cuối thích hợp). Dù sao,

  1. Đảm bảo máy khách ssh được cài đặt trên Linux của bạn. Nếu không, cài đặt nó sudo apt install ssh.
  2. Tắt nguồn hệ điều hành.
  3. Bây giờ trên VB của bạn đi Settings -> Network ->vào Adapter 1chọn Host-only adapter-> bấm OK.
  4. Bây giờ bắt đầu hệ điều hành của bạn. Chạy ifconfig; bây giờ địa chỉ inet là IP của bạn.
  5. Sử dụng này và chạy nó trên putty của bạn. Đăng nhập với thông tin của bạn.

Nhược điểm duy nhất của việc sử dụng bộ điều hợp chỉ lưu trữ là hệ điều hành khách của bạn sẽ không có quyền truy cập vào mạng rộng hơn (ví dụ: Internet).

Nếu bạn cũng cần VM của mình để có quyền truy cập internet, hãy để Adaptor 1 là NAT và bật Adaptor 2, được định cấu hình như một bộ điều hợp Chỉ lưu trữ. Điều này sẽ cho phép VM của bạn kết nối với internet bằng NAT cũng như tạo kết nối cục bộ với Máy chủ của bạn bằng Chỉ lưu trữ.


4
"bắc cầu" sẽ đặt ip trên giao diện cục bộ của bạn và kết nối truy cập internet lớn hơn
Duke

2
Ưu điểm của việc sử dụng hai giao diện, như được mô tả ở đây, qua cầu nối, là bạn không dựa vào máy chủ dhcp cục bộ chấp nhận yêu cầu của bạn. Hầu hết các máy chủ dhcp ở những nơi công cộng (ariport, máy bay, khách sạn và thậm chí hầu hết các mạng công ty) sẽ không cung cấp một ip thứ hai thông qua cùng một bộ chuyển đổi wifi, vì vậy một VM cầu nối sẽ không hoạt động trong môi trường đó. Đây là một bước thực sự tốt về cách thiết lập cấu hình cụ thể này: christophermaier.name/2010/09/01/
Kẻ

Hoạt động như một cơ duyên, nhưng bạn nên đặt Adaptor 2 ở tùy chọn thứ 3 để mọi người rời khỏi NAT một mình
user3502626

cảm ơn rất nhiều.
Lu-ca

cảm ơn rất nhiều. Nhưng khi tôi thay đổi cài đặt Mạng Ubuntu từ nó NATsang host only adapterkhông thể kết nối với internet nữa, giải pháp nào?
Lu-ca

19

Trước tiên, bạn cần quyết định xem VM của bạn được kết nối với máy chủ của bạn thông qua kết nối cầu nối hay thông qua NAT, nhưng theo cách ether, bạn sẽ cần đặt địa chỉ IP VM trong putty để có thể kết nối với ip, trong thiết bị đầu cuối VM lệnh này để hiển thị cho bạn địa chỉ IP của máy (và không có 127.0.0.1 không phải là địa chỉ IP của máy)

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

trong trường hợp này, địa chỉ IP của tôi sẽ là 10.0.2.15,

Trước tiên hãy cố gắng đảm bảo bạn có thể giao tiếp ở mức cơ bản với VM, mở cửa sổ đầu cuối trên máy chủ của bạn và thử ping máy ảo

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

Nếu bạn nhận được kết quả ant, thì hãy chắc chắn rằng bạn có dịch vụ ssh đang chạy trên VM, trong thiết bị đầu cuối trên loại VM của bạn là root,

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

Điều này cho biết khi chúng ta có một dịch vụ / quy trình với PID (2361) được gọi là sshd (OpenSSH daemon) nghe cổng 22.

Bạn có thể kiểm tra xem dịch vụ có hoạt động chính xác hay không bằng cách thử ssh với nó từ VM.

VM # ssh 127.0.0.1

Tiếp theo, bạn hãy chắc chắn rằng bạn không chặn cổng 22 trong tường lửa / iptables của bạn, tôi không thể tin như vậy, nhưng dù sao thì hãy kiểm tra nó. Trong VM, gõ lệnh này để hiển thị cho bạn các iptables,

VM # iptables -nvL INPUT

trong đầu ra, bạn nên có dòng như thế này:

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

Đã thử điều đó, và rõ ràng địa chỉ IP của tôi là 10.0.2.15. Tôi đã thử nhập nó vào Putty và connection timed outlại gặp lỗi. Tôi cũng đã thử các nvLlệnh bạn đề cập đến, và có được một tải trọng (vì thiếu một từ tốt hơn) thứ - Chain INPUT (policy accept......, chain FORWARD.....vv
wickywills

Tôi viết lại câu trả lời của tôi với một vài điểm bạn có thể kiểm tra, xin vui lòng cho tôi biết.
Rabin

2
Điều gì xảy ra nếu ping 10.0.2.15 lần? Tôi sử dụng NAT.
Dan Dascalescu

Chuyển tiếp cổng là câu trả lời.
Dan Dascalescu

Để thuận tiện: iptables -A INPUT -p tcp --dport ssh -j ACCEPTsẽ cho phép lưu lượng truy cập đến nếu bạn không thấy tcp trong iptables của mình.
Eric Hodgins

15

Độ phân giải của tôi tương tự như Roman T tuy nhiên tôi cần thêm một vài bước nữa. Trong trường hợp của tôi, tôi đã có Ubuntu Server 14 VM chạy trên Máy tính để bàn Windows 8 trong miền Windows 2008. Nếu tôi đã thử NAT hoặc Bridge, tôi có thể truy cập Internet nhưng không thể kết nối qua SSH.

Nếu tôi đã thử Bộ điều hợp chỉ lưu trữ thì điều đó sẽ cho phép tôi SSH vào máy nhưng không thể truy cập Internet.

Tôi đã thử chuyển tiếp cổng là tốt và không có niềm vui. Đã mở Wireshark và nó không tìm thấy VM.

Vì vậy, giải pháp của tôi là thêm một bộ điều hợp mạng thứ hai.

phương pháp

Với VM tắt nguồn

  1. Nhấp vào Cài đặt> Mạng Nhấp vào Bộ điều hợp 1 và chọn Bộ điều hợp Cầu nối
  2. Nhấp vào Bộ điều hợp 2 và chọn Bộ điều hợp Chỉ lưu trữ
  3. Nhấp vào Tệp> Tùy chọn> Mạng trong Mạng NAT nếu bạn không thấy Mạng NAT nhấp vào biểu tượng + để thêm Mạng NAT.
  4. Nhấp vào Mạng chỉ dành cho máy chủ nếu bạn không thấy biểu tượng chỉ nhấp vào máy chủ để thêm một mạng

Khởi động VM

  1. Để xem bộ điều hợp mạng, bạn cần nhập

    ifconfig -a
    
  2. Bạn có thể thấy bộ điều hợp mạng được thêm bằng địa chỉ mac nhưng không phải là IP?

  3. Nếu vậy thì bạn cần chỉnh sửa / etc / mạng / giao diện để định cấu hình DHCP. Ví dụ bên dưới bằng VI / VIM nhưng bạn có thể sử dụng trình chỉnh sửa bạn chọn

    sudo vi /etc/network/interfaces
    
  4. thêm các dòng

    auto eth1
    iface eth1 inet dhcp
    
  5. lưu và thoát tập tin.
  6. Sau đó thử khởi động lại dịch vụ mạng bằng lệnh bên dưới

    sudo service networking restart
    
  7. Hoặc nếu thất bại thì khởi động lại VM.
  8. Sau khi khởi động lại, hãy gõ bên dưới để xem bạn eth1 có được cấp địa chỉ IP không

    ifconfig -a
    
  9. nếu vậy thì hãy xem bạn có thể SSH vào VM không

Tôi đã thử giải pháp của bạn, nhưng không có IP nào được gán cho giao diện mới. Hơn nữa tôi đã kích hoạt DHCP trong VBox của mình.
Athlan

12

Các hướng dẫn sau đây đã hoạt động với Ubuntu 14.04 và Oracle VirtualBox 4.3.30.

Làm điều này trong VirtualBox:

  1. Nhấp chuột phải vào máy ảo của bạn, chọn "Cài đặt" và sau đó chọn "Mạng".

  2. Bên cạnh "Đã đính kèm", chọn "Bộ điều hợp chỉ lưu trữ". Là một lưu ý phụ, "Bộ điều hợp cầu nối" cũng sẽ hoạt động, kiểm tra tài liệu VirtualBox để biết thêm chi tiết về từng tùy chọn.

Làm điều này trong Máy ảo của bạn:

  1. Tìm địa chỉ IP mạng của bạn bằng cách mở một thiết bị đầu cuối và gõ ifconfig. Quan sát địa chỉ IP được hiển thị bên cạnh eth0, bên dưới "inet addr". Bạn cũng có thể thấy địa chỉ IP của mình nếu bạn nhấp vào biểu tượng Mạng ở góc trên bên phải màn hình của bạn, rồi chọn "Thông tin kết nối".

  2. Cài đặt openssh-server bằng cách gõ như sau tại terminal:

    sudo apt-get install openssh-server
    
  3. Chỉ trong trường hợp, khởi động lại máy ảo.

Bây giờ bạn có thể kết nối từ PuTTY bằng địa chỉ IP từ bước 1 ở trên và cổng 22.


2

Đối với Ubuntu 18.04 và VirtualBox 5.2:

  1. Tạo giao diện mạng máy chủ

    Tôi. Trên Virtualbox, bấm File/ Host Network Manager.

    ii. Nếu bạn chưa có bộ điều hợp Mạng Máy chủ (mặc định vboxnet0), hãy nhấp Create.

  2. Bật cài đặt Bộ điều hợp chỉ dành cho Máy chủ cho VM

    Tôi. Trên Virtualbox, nhấp chuột phải vào VM của bạn và chọn Settings.

    ii. Nhấn Networkvà chọn Adapter 2.

    iii. Nhấn vào đây Enable Network Adapter.

    iv. Theo Attached to:lựa chọn Host-only Adapter. Tên của bộ chuyển đổi bạn đã tạo ở bước 1 sẽ xuất hiện (mặc định vboxnet0).

  3. Định cấu hình cài đặt mạng trong VM

    Tôi. Bắt đầu VM của bạn và kiểm tra giao diện nào đã được thêm vào : ip a. Tìm giao diện không có inetđịa chỉ. Trên của tôi, nó là enp0s8.

    ii. Chỉnh sửa /etc/netplan/01-netcfg.yaml. ví dụ sudo vi /etc/netplan/01-netcfg.yaml.

    iii. Trong cài đặt cho bộ điều hợp gốc, thêm chi tiết cấu hình:

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

    Điều này gán một địa chỉ IP tĩnh cho VM của bạn để thuận tiện cho SSH. Nếu bạn muốn dhcpxử lý địa chỉ thay thế, hãy bỏ qua địa chỉ và cấu hình cổng và đặt dhcp4thành yes.

    iv. Tải lại tập tin cấu hình : sudo netplan apply.

  4. SSH vào máy ảo của bạn

    Tôi. Nếu bạn chưa cài đặt sshtrong VM : sudo apt install ssh.

    ii. Từ máy chủ của bạn, SSH vào VM : ssh <username>@192.168.56.2.


Cảm ơn, đã cứu ngày của tôi!
anber
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.