ไม่สามารถ ssh ไปยังคอมพิวเตอร์เครื่องอื่น แต่สามารถ ping ได้หรือไม่


20

ไม่สามารถ ssh ไปยังคอมพิวเตอร์เครื่องอื่น แต่สามารถ ping ได้? ไม่แน่ใจว่าสิ่งที่ฉันหายไป?
ใช้เราเตอร์ 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$ 

คำตอบ:


17

เซิร์ฟเวอร์ไม่ทำงาน sshd (และไม่ฟังพอร์ต 22) หรือมีไฟร์วอลล์บล็อกพอร์ต 22 (พอร์ต ssh เริ่มต้น) หรือในกรณีที่หายากอย่างไม่น่าเชื่อที่ใช้ ssh บนพอร์ตอื่น (ซึ่งไม่ใช่กรณีจริง ๆ ) .

ตรวจสอบก่อนเพื่อให้แน่ใจว่าติดตั้ง sshd (โดยใช้ตัวอย่างเดเบียน)

sudo apt-get install openssh-server

และถ้าเป็นเช่นนั้นมันกำลังทำงานอยู่:

ps -ef | grep sshd

จากนั้นตรวจสอบเพื่อดูว่ากำลังฟังพอร์ต 22 หรือไม่

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

จากนั้นตรวจสอบกฎไฟร์วอลล์ของคุณ (สิ่งนี้จะแตกต่างกันมากดังนั้นฉันจะแสดงตัวอย่างเดเบียน / อูบุนตู / 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)

หากufwแสดงว่ามันปิดแล้วให้เรียกใช้ (อีกตัวอย่างเดเบียน / อูบุนตู)

sudo ufw allow 22

1
FWIW ก็ค่อนข้างธรรมดาที่จะมีเครื่องภายนอกหันหน้าไปทำงาน SSH บนพอร์ตที่แตกต่างกันเพื่อบรรเทาผิวโจมตี
SG

3

การถ่ายภาพในที่มืดแปลก ๆ แต่ต้องแน่ใจว่า IP ของคุณไม่เปลี่ยนแปลง ฉันมีปัญหานี้ครั้งเดียว - ฉันตั้ง.bashrcชื่อแทนalias sshdev='ssh me@123.2.3.4'เป็นวิธีทั่วไปในการลงชื่อเข้าใช้และวันหนึ่งฉันเริ่มได้รับข้อผิดพลาดต่อไปนี้:

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

เราเพิ่งเกิดไฟดับในที่ทำงานซึ่งรีเซ็ต IP ของฉันจึงประสบความสำเร็จในการกระตุก IP แต่มันไม่ใช่เครื่องที่ถูกต้อง คุณสามารถใช้nslookup <IP>เพื่อให้แน่ใจว่าเป็นชื่อเครื่องที่ถูกต้องที่คุณต้องการsshใช้


1

เมื่อคุณได้รับข้อความ "การเชื่อมต่อถูกปฏิเสธ" นั่นหมายความว่า daemon ไม่ได้ฟังพอร์ตนั้นหรือไฟร์วอลล์กำลังปฏิเสธการเชื่อมต่อ ในการแก้ไขปัญหาตรวจสอบให้แน่ใจว่าsshกำลังทำงานอยู่และกฎไฟร์วอลล์ท้องถิ่นไม่ปฏิเสธการเชื่อมต่อขาเข้าบนพอร์ตนั้น


1

ฉันมีปัญหาเดียวกันกับ Linux Lite เพื่อแก้ไขปัญหาฉันต้องเข้าถึงการตั้งค่า> การกำหนดค่าไฟร์วอลล์ หลังจากลงชื่อเข้าใช้รูทฉันเปลี่ยนการตั้งค่าขาเข้าเป็นอนุญาตและทำงานได้


0

สองความคิด

  1. ไฟร์วอลล์อนุญาตการเชื่อมต่อที่พอร์ต 22 ไปยังเครื่องหรือไม่
  2. ssh daemon ( sshd) กำลังทำงานอยู่หรือไม่


0

ขั้นตอนที่ตามมาโดยทั่วไป: 1) ping ไปยังโฮสต์ปลายทางและตรวจสอบและข้ามการตรวจสอบที่อยู่ IP ที่ป้อน 2) ตรวจสอบสถานะบริการ sudo ของ sudo ทั้งบนโฮสต์ หากหยุดให้เริ่มบริการ sshd หากคุณได้รับข้อผิดพลาดไม่พบ sshd.service ให้ติดตั้ง openssh-server -> sudo apt ติดตั้ง -y openssh-server และรีสตาร์ท sshd.service 3) ปิดการใช้งานไฟร์วอลล์หรือทำการเปลี่ยนแปลงไฟล์ config ควรพิจารณาตัวเลือกสุดท้าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.