Không thể ssh sang máy tính khác, nhưng có thể ping nó không?


20

Không thể ssh sang máy tính khác nhưng có thể ping nó không? Không chắc chắn những gì tôi đang thiếu?
Sử dụng bộ định tuyến Netgear

bash-3.2$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
        inet 127.0.0.1 netmask 0xff000000 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether xx:xx:xx:xx:xx:xx 
        media: autoselect (none)
        status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether xx:xx:xx:xx:xx:xx 
        inet6 xxxx::xxxx:xxxx:xxxx:xxxxxx prefixlen 64 scopeid 0x5 
        inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255
        media: autoselect
        status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
        lladdr xx:xx:xx:xx:xx:xx:xx:xx 
        media: autoselect <full-duplex>
        status: inactive
bash-3.2$ ssh jeremy@10.0.0.4
ssh: connect to host 10.0.0.4 port 22: Connection refused
bash-3.2$ ssh -p 5900 jeremy@10.0.0.4
ssh: connect to host 10.0.0.4 port 5900: Connection refused
bash-3.2$ ping 10.0.0.3
PING 10.0.0.3 (10.0.0.3): 56 data bytes
64 bytes from 10.0.0.3: icmp_seq=0 ttl=64 time=0.046 ms
64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=0.079 ms
64 bytes from 10.0.0.3: icmp_seq=2 ttl=64 time=0.078 ms
64 bytes from 10.0.0.3: icmp_seq=3 ttl=64 time=0.077 ms
64 bytes from 10.0.0.3: icmp_seq=4 ttl=64 time=0.079 ms
64 bytes from 10.0.0.3: icmp_seq=5 ttl=64 time=0.081 ms
64 bytes from 10.0.0.3: icmp_seq=6 ttl=64 time=0.078 ms
^C
--- 10.0.0.3 ping statistics ---
7 packets transmitted, 7 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.046/0.074/0.081/0.011 ms
bash-3.2$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4): 56 data bytes
64 bytes from 10.0.0.4: icmp_seq=0 ttl=64 time=2.667 ms
64 bytes from 10.0.0.4: icmp_seq=1 ttl=64 time=2.675 ms
64 bytes from 10.0.0.4: icmp_seq=2 ttl=64 time=2.969 ms
64 bytes from 10.0.0.4: icmp_seq=3 ttl=64 time=2.663 ms
64 bytes from 10.0.0.4: icmp_seq=4 ttl=64 time=2.723 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.663/2.739/2.969/0.117 ms
bash-3.2$ 

Câu trả lời:


17

Máy chủ không chạy sshd (và do đó không nghe trên cổng 22) hoặc có cổng chặn tường lửa 22 (cổng ssh mặc định) hoặc trong trường hợp cực kỳ hiếm khi chạy ssh trên một số cổng khác (gần như chắc chắn không phải vậy) .

Trước tiên hãy kiểm tra để đảm bảo sshd được cài đặt (sử dụng các ví dụ debian)

sudo apt-get install openssh-server

Và nếu vậy, nó có chạy không:

ps -ef | grep sshd

sau đó kiểm tra xem nó có nghe cổng 22 không

sudo netstat -nlp | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      946/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      946/sshd

sau đó kiểm tra các quy tắc tường lửa của bạn (điều này thay đổi đáng kể, vì vậy tôi sẽ hiển thị ví dụ về debian / ubfox / etc):

sudo ufw status

sudo ufw show listening
tcp:
  22 * (sshd)
  24224 * (ruby)
tcp6:
  22 * (sshd)
  8080 * (java)
udp:
  123 10.X.Y.Z (ntpd)
  123 * (ntpd)
  18649 * (dhclient)
  24224 * (ruby)
  34131 * (ruby)
  60001 10.87.43.24 (mosh-server)
  68 * (dhclient)
udp6:
  123 fe80::1031:AAAA:BBBB:CCCC (ntpd)
  123 * (ntpd)
  48573 * (dhclient)

Nếu ufwhiển thị nó là đã đóng rồi chạy (lại là ví dụ về debian / ubfox)

sudo ufw allow 22

1
FWIW, việc các máy có bề mặt bên ngoài chạy SSH trên một cổng khác để giảm thiểu bề mặt tấn công là điều khá phổ biến
sg

3

Một kiểu bắn lạ trong bóng tối, nhưng hãy đảm bảo IP của bạn không thay đổi. Tôi đã gặp vấn đề này một lần - Tôi đặt .bashrcbí danh alias sshdev='ssh me@123.2.3.4'là cách đăng nhập thông thường của mình và một ngày tôi bắt đầu gặp phải lỗi sau:

ME-M-216C:~ me$ sshdev 
ssh: connect to host 123.2.3.4 port 22: Connection refused

Chúng tôi vừa bị mất điện tại nơi làm việc để thiết lập lại IP, vì vậy tôi đã ping thành công IP nhưng đó không phải là máy chính xác. Bạn có thể sử dụng nslookup <IP>để đảm bảo đó là tên máy chính xác mà bạn đang cố gắng sshnhập.


1

Khi bạn nhận được thông báo "kết nối bị từ chối", điều đó có nghĩa là một daemon không nghe trên cổng đó hoặc tường lửa đang từ chối kết nối. Để giải quyết vấn đề, đảm bảo rằng nó sshđang chạy và các quy tắc tường lửa cục bộ không từ chối các kết nối đến trên cổng đó.


1

Tôi gặp vấn đề tương tự với Linux Lite. Để khắc phục sự cố, tôi phải truy cập Cài đặt> Cấu hình tường lửa. Sau khi đăng nhập vào root, tôi đã thay đổi cài đặt đến thành Cho phép và nó hoạt động.


0

Hai suy nghĩ.

  1. Tường lửa có cho phép kết nối trên cổng 22 với máy không?
  2. Là dash ssh ( sshd) đang chạy?

0

lệnh này đã làm việc cho tôi. Thử đi.

update-rc.d -f ssh enable 2 3 4 5

0

Các bước tiếp theo nói chung: 1) ping đến máy chủ đích và xác minh và kiểm tra chéo địa chỉ IP đã nhập. 2) Kiểm tra trạng thái sshd dịch vụ sudo trên cả hai máy chủ. Nếu dừng, bắt đầu dịch vụ sshd. Nếu bạn không tìm thấy lỗi sshd.service, cài đặt openssh-server -> sudo apt install -y openssh-server và khởi động lại sshd.service 3) Vô hiệu hóa tường lửa hoặc thay đổi tệp cấu hình nên được coi là tùy chọn cuối cùng.

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.