ไม่สามารถ SSH จาก LAN ภายนอกแม้ว่าการส่งต่อพอร์ตจะใช้ได้


8

ใช้ Ubuntu 12.04 ฉันได้ตั้งค่าเซิร์ฟเวอร์ OpenSSH แล้ว ฉันสามารถเชื่อมต่อจากภายใน LAN แต่ไม่ใช่จากภายนอก ฉันกำลังใช้sshd_configไฟล์เดียวกันกับบนเครื่อง Ubuntu 12.04 เครื่องอื่นของฉัน (ซึ่งอยู่ใน LAN อื่น)

$ ssh 192.168.0.2

ทำงานได้ดี แต่

$ ssh 65.76.97.222

(สร้างที่อยู่ IP) ไม่ทำงาน ไม่มีอะไรเกิดขึ้น. ไม่มีข้อผิดพลาดหรืออะไร พรอมต์ตั้งอยู่ตรงนั้น

ขอบคุณความคิดเห็นด้านล่างฉันมีการจัดการเพื่อตรวจสอบผ่านเว็บไซต์canyouseeme.orgและShieldsUPที่พอร์ต 22 เปิดแน่นอน

ใช้ตัวเลือกที่-vvvฉันได้รับต่อไปนี้:

$ ssh -vvv 65.76.97.222
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 65.76.97.222 [65.76.97.222] port 22.
debug1: Connection established.
debug1: identity file /home/myname/.ssh/id_rsa type -1
debug1: identity file /home/myname/.ssh/id_rsa-cert type -1
debug1: identity file /home/myname/.ssh/id_dsa type -1
debug1: identity file /home/myname/.ssh/id_dsa-cert type -1
debug1: identity file /home/myname/.ssh/id_ecdsa type -1
debug1: identity file /home/myname/.ssh/id_ecdsa-cert type -1

แล้วพรอมต์ก็อยู่ตรงนั้น

ข้อมูลการแก้ปัญหาเพิ่มเติมจากvar/log/auth.log:

$ grep sshd /var/log/auth.log
[cutting old lines...]    
Jul  6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222

ฉันอนุญาตให้ผู้ใช้เชื่อมต่อโดยเฉพาะชื่อผู้ใช้ของฉันเอง สิ่งที่ทำให้ฉันสับสนคือฉันไม่ได้มีปัญหานี้ในเครื่องอื่น ๆ แม้ว่าพวกเขาจะอยู่ใน LAN อื่น LAN นี้มีคอมพิวเตอร์เพียงเครื่องเดียว มีแนวคิดใดเกี่ยวกับวิธีดำเนินการจากที่นี่?


ลองใช้ตัวเลือก verbose (การ-v, -vvเพื่อ-vvv) เพื่อรับข้อมูลใหม่พิเศษ: การเชื่อมต่อ เช่นssh -vvv -p 51555 65.76.97.222.
amc

ตรวจสอบพอร์ตการส่งต่อcanyouseeme.org
hwez

ขอบคุณฉันได้แก้ไขคำถามของฉันเพื่อสะท้อนความคิดเห็นของคุณ
DustByte

คำตอบ:


3

สองสามสิ่งเพื่อให้คุณตรวจสอบ

  1. ตรวจสอบ/etc/ssh/sshd_configและตรวจสอบให้แน่ใจว่าคุณไม่มีAllowUsersรายการตลกๆ

  2. ระบุผู้ใช้ที่คุณต้องการเชื่อมต่อเป็น:

    ssh USER@SERVER
    ssh SERVER -lUSER
    
  3. ตรวจสอบไฟร์วอลล์ของคุณ ( iptables):

    sudo iptables -L --line-numbers
    sudo iptables -L -t nat --line-numbers
    

2

ตรวจสอบว่าเกตเวย์ของคุณบนเซิร์ฟเวอร์ SSH ถูกตั้งค่าเป็นเราเตอร์ที่ทำการส่งต่อพอร์ต

route -n

เส้นทางเริ่มต้นควรชี้ไปที่เราเตอร์นั้นมิฉะนั้นคุณจะสามารถเริ่มต้นการเชื่อมต่อผ่านได้ แต่ ACK จะไม่ไปไหนเลย!


1

จำเป็นต้องตรวจสอบว่าการส่งต่อพอร์ตทำงานอย่างถูกต้องฉันมักจะตรวจสอบโดยไปที่https://www.grc.com/shieldsup > ดำเนินการต่อ> ใส่หมายเลขพอร์ตของคุณลงในกล่องและคลิกโพรบพอร์ตที่ผู้ใช้กำหนดเองที่ระบุ ควรบอกคุณว่าพอร์ต TCP นั้นเปิดให้เป็นสาธารณะหรือไม่


ขอบคุณ ฉันได้แก้ไขคำถามเพื่อสะท้อนถึงข้อเสนอแนะของคุณ อย่างไรก็ตามปัญหายังคงอยู่
DustByte

HUH เครือข่ายถูกตัดออกดังนั้นดูเหมือนว่าปัญหาการกำหนดค่า ลองgrep sshd /var/log/auth.log
meccooll

บรรทัดต่อไปนี้จะถูกเพิ่มเข้าไปในauth.log:Jul 6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222
DustByte

1

คุณกำลังประกาศผู้ใช้หรือไม่

ssh Jimmy@65.76.97.222 -p51555

หากคุณให้รหัสในแบบที่คุณใช้อยู่ฉันเชื่อว่ารหัสนั้นจะเป็นชื่อผู้ใช้ปัจจุบัน

นอกจากนี้คุณต้องมีผู้ใช้ในระบบเป้าหมายที่ได้รับอนุญาต ในตัวอย่างด้านบน "Jimmy"


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