เหตุใด Ubuntu จึงไม่สามารถเข้าถึง Raspberry Pi ของฉันผ่าน LAN ได้


9

โอเคฉันเพิ่งได้ Raspberry Pi และฉันได้เชื่อมต่อกับ Wi-Fi ของฉัน - ฉันเปิดใช้งาน SSH และติดตั้ง Hiawatha และฉันสามารถเข้าถึงได้จาก Desktop ซึ่งใช้ Puppy Linux ในเวลานั้น

ฉันยังสามารถเข้าถึงได้ด้วยเมื่อบูตเข้าสู่ Windows (PuTTY บน Win XP Pro) และเน็ตบุ๊กก็สามารถเข้าถึงได้ผ่าน PuTTY เช่นกัน (ชนะ Starter 7)

อย่างไรก็ตามเมื่อฉันบูทเข้ากับ Ubuntu การเชื่อมต่อ SSH, HTTP และ HTTPS ทั้งหมดจะถูกปฏิเสธ เพื่อยืนยันว่ามันเป็นอูบุนตูและอูบุนตูเท่านั้นที่มีปัญหาการเชื่อมต่อฉันรีบูทเป็น Puppy Linux - เชื่อมต่อได้ดีและเป็น Windows - ปรับการเชื่อมต่อ เน็ตบุ๊กสามารถเชื่อมต่อกับบริการทั้ง 3 โดยไม่มีปัญหา มันเป็นเพียง Ubuntu ที่กล่าวว่าการเชื่อมต่อถูกปฏิเสธ

ฉันต้องการทราบว่ามีอะไรผิดปกติ - ฉันได้ทำการแก้ไขปัญหาพื้นฐานทั้งหมดแล้ว: การรีบูตเครื่อง RPi, การรีบูตเครื่องคอมพิวเตอร์ของฉัน, การรีบูตเราเตอร์ไร้สาย ฯลฯ Raspberry Pi ไม่มีการเปิดใช้งานไฟร์วอลล์และเราเตอร์ของฉันมีอุปกรณ์ทั้งหมดที่เชื่อมต่อ LAN ไม่ จำกัด การเข้าถึงซึ่งกันและกัน ฉันได้ทำการทดสอบอย่างกว้างขวางและ Ubuntu ได้รับการพิสูจน์แล้วว่ามีข้อสงสัยว่าจะเป็นสิ่งเดียวที่ไม่ต้องการเชื่อมต่อ

อัปเดต: เพิ่งทดสอบการเข้าถึงผ่าน IP ภายนอกของฉันและทุกอย่างทำงานได้อย่างราบรื่นบน Ubuntu! อย่างไรก็ตามอูบุนตูยังไม่สามารถเข้าถึง Pi จากสิ่งที่ท้องถิ่นและฉันเพียงแค่อีกครั้งยืนยันว่าระบบปฏิบัติการอื่น ๆ ของฉันสามารถ ฉันคิดว่ามันแปลกที่อูบุนตูมีปัญหาในการเชื่อมต่อภายใน (ไม่เหมือนกับระบบปฏิบัติการอื่น ๆ ของฉัน) แต่ก็แค่เข้าถึง Pi ผ่าน IP ภายนอกของฉันได้ดี

UPDATE 2: ปิดการใช้งานไฟร์วอลล์ของฉันช่วยให้ฉันเข้าถึงอุปกรณ์ แต่รายงานรหัสผ่านไม่ถูกต้องทุก เดียว เวลา ผมเคยพยายามพิมพ์ลงใน Gedit แล้วลากและวางมันลงในรหัสผ่านพรอมต์ในช่วงเข้าสู่ระบบ SSH และอนุมัติเมื่อมีการเข้าถึงแต่ไม่ได้เมื่อมีการเข้าถึงpi@jamestheawesomedude.cu.cc pi@192.168.2.128นี่เป็นสิ่งที่น่าหงุดหงิดอย่างไม่น่าเชื่อ


2
กรุณาแสดงบันทึก ssh -vvv user@hostในฝั่งไคลเอ็นต์sudo tail -f /var/log/auth.logบนฝั่งเซิร์ฟเวอร์ บางทีมันสมเหตุสมผลที่จะเพิ่ม verbosity ในการกำหนดค่าเซิร์ฟเวอร์ SSH เช่นกัน
Andrejs Cainikovs

ไม่มีอะไรน่าสนใจจริงๆมีเพียงข้อความ "การเชื่อมต่อถูกปฏิเสธ": pastebin.com/Nc1W8Mja
JamesTheAwesomeDude

3
FYI: นอกจากนี้ยังมี Raspberry stack raspberrypi.stackexchange.com
Meer Borg

3
@eerBorg ฉันเป็นผู้ใช้งานอยู่ที่นั่นแล้วและฉันก็คิดว่าจะถามเรื่องนี้ที่นั่น แต่ Ubuntu เป็นปัญหาเดียวที่เชื่อมต่อ หากฉันไม่สามารถเชื่อมต่อด้วยวิธีใด ๆ ฉันก็เลยสงสัยว่ามีปัญหากับ Pi แต่เนื่องจาก Ubuntu เป็นสิ่งแปลก ๆ ที่นี่ฉันจึงตัดสินใจถามมันบนเว็บไซต์นี้
JamesTheAwesomeDude

@JamesTheAwesomeDude ควรจะมีบางสิ่งบางอย่างที่สื่อความหมายมากกว่าธรรมดาเชื่อมต่อปฏิเสธ ข้อความนี้เป็นผลลัพธ์ แต่ควรมีข้อความแสดงข้อผิดพลาดเช่นกัน
Andrejs Cainikovs

คำตอบ:


1

ดังนั้นจนกว่าคุณจะได้เปิดการใช้งานด้วยการตั้งค่าเริ่มต้นบนเครื่องอูบุนตูของคุณเชื่อมต่อที่มีการรายงานเสมอufw Connection refusedหลังจากที่คุณปิดการใช้งานufwไคลเอนต์คุณการเชื่อมต่อจะถูกสร้างขึ้น แต่รหัสผ่านจะถูกปฏิเสธเสมอ?

ฉันเดาว่าในกรณีนี้ปัญหาของคุณคือว่า192.168.2.128ip ถูกส่งกลับไปยังเครื่อง Ubuntu ของลูกค้าและจริงๆแล้วคุณกำลังเชื่อมต่อกับsshเซิร์ฟเวอร์ที่ทำงานบนเครื่อง Ubuntu ของคุณ สิ่งนี้จะอธิบาย:

  • ทำไมคุณสามารถเชื่อมต่อจากอินเทอร์เน็ต

  • ทำไมการเชื่อมต่อของคุณถูกปฏิเสธเมื่อไฟร์วอลล์เปิดอยู่ในไคลเอนต์ Ubuntu ของคุณ

  • เหตุใดการเชื่อมต่อจึงไม่ถูกปฏิเสธอีกเมื่อปิดไฟร์วอลล์ไคลเอ็นต์

  • ทำไมตอนนี้การเชื่อมต่อถูกสร้างขึ้น แต่การรับรองความถูกต้องล้มเหลว

วิธีแก้ปัญหากรณีนี้:

  • ตรวจสอบคีย์โฮสต์ของเซิร์ฟเวอร์ssh -v pi@192.168.2.128ทั้งในท้องที่และสำหรับการเชื่อมต่ออินเทอร์เน็ต รายงานรหัสเดียวกันหรือไม่

  • หรือขณะที่คุณกำลังเชื่อมต่อจากโลคัลและคุณพร้อมที่จะพิมพ์รหัสผ่านจากเทอร์มินัลอื่น: sudo netstat -tupanและดูว่ามีการเชื่อมต่อsshdกับ Ubuntu ของคุณหรือไม่

แม้ว่ากรณีนี้จะอธิบายทุกอย่าง แต่มันแปลกมากที่ฉันสงสัยว่านี่เป็นปัญหาของคุณ


#ufw อนุญาตให้ <port> เพิ่มข้อยกเว้น #ssh -v user @ address เพื่อรับเอาต์พุต verbose ซึ่งจะบอกคุณเพิ่มเติมเกี่ยวกับสาเหตุที่คุณไม่สามารถเชื่อมต่อได้ "conection ปฏิเสธ" บ่อยครั้งหมายความว่าพอร์ตเริ่มต้นไม่ถูกต้อง ot ไคลเอนต์ไฟร์วอลล์หรือเซิร์ฟเวอร์กำลังบล็อกการเชื่อมต่อ
j0h

1
@ j0h ฉันคิดว่าคุณต้องการโพสต์ความคิดเห็นนี้เป็นความคิดเห็นต่อคำถาม แต่อย่างไรก็ตาม: ในความคิดเห็น OP ได้เตรียมssh -vvvเอาท์พุทไว้แล้ว เขายังกล่าวในคำถามที่ว่า Pi ไม่ได้เปิดใช้งานไฟร์วอลล์ดังนั้น ufw จึงอยู่ในไคลเอนต์และเขาบอกว่าเขาปิดการใช้งาน แต่เขายังไม่สามารถเข้าสู่ระบบได้พอร์ตไม่สามารถเป็นปัญหาได้เพราะเขา สามารถเชื่อมต่อกับพอร์ตเดียวกันนั้นได้จากเครื่องอื่น ๆ
falconer

1

เป็นไปได้ว่าเครื่อง Ubuntu ของคุณจะได้รับที่อยู่ IP เครือข่ายที่แตกต่างจากที่คาดไว้ ลองทำสิ่งต่อไปนี้:

  • บน raspi ตรวจสอบที่อยู่ IP ด้วย ifconfig | grep 192.168
  • บนเครื่องอูบุนตูตรวจสอบที่อยู่ IP ด้วย ifconfig | grep 192.168

เพื่อให้สามารถพูดคุยกันในเครือข่ายท้องถิ่นของคุณทั้งคู่ควรใช้ซับเน็ตเดียวกัน - ดูที่ส่วนที่สามของที่อยู่ IP เพื่อดูว่าพวกเขาเป็นใคร ในกรณีของคุณทั้งคู่ควรอยู่ในเครือข่ายย่อย 192.168.2. *

ตรวจสอบให้แน่ใจว่าพวกเขามีที่อยู่ IP ที่แตกต่างกันเช่นกัน สิ่งนี้อาจดูเหมือนชัดเจน แต่สามารถเกิดขึ้นได้หากหนึ่งในนั้นกำลังใช้ DHCP และอีกอันหนึ่งถูกตั้งค่าแบบคงที่

หากตรวจสอบแล้วให้เรียกใช้คำสั่งต่อไปนี้เพื่อดูว่าแพ็คเก็ตของคุณควรจะไปที่ใด:

route -n

ค้นหาเอาต์พุตสำหรับ subnet ปลายทางที่ใช้กับ raspberry pi ของคุณ ควรมี 3 แถวจริง ๆ :

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

หากคุณมีแถวหรือสิ่งต่าง ๆ กำลังจะไปยังจุดแปลก ๆ นั่นคือคำตอบ

ฉันเดาว่าการเชื่อมต่อ ssh ของคุณกำลังสิ้นสุดเซิร์ฟเวอร์ SSH ที่แตกต่างจากเซิร์ฟเวอร์ raspberry pi ของคุณซึ่งเป็นสาเหตุที่การเปลี่ยนไฟร์วอลล์ ubuntu นั้นส่งผลกระทบต่อมันและการเข้าสู่ระบบของคุณไม่ทำงาน


0

จากสิ่งที่อยู่ใน PasteBin ของคุณ "การเชื่อมต่อถูกปฏิเสธ" ระบุว่าคุณได้รับการรีเซ็ต TCP จากสิ่งที่อยู่ IP นั้น

ตรวจสอบสติ: ในขณะที่การแก้ไขปัญหา DISABLE ufw

เมื่อปิดใช้งานไฟร์วอลล์เดสก์ท็อปคุณสามารถ ping Pi จากเดสก์ท็อปของคุณได้หรือไม่ คุณสามารถ ping เดสก์ท็อปจาก Pi ของคุณได้ไหม

หลังจากพยายาม ping ในทั้งสองทิศทางให้ดูที่เอาต์พุตของ 'arp -n' บนเครื่องทั้งสอง พวกเขาเห็นที่อยู่ MAC (ฮาร์ดแวร์อีเทอร์เน็ต) ของกันและกันหรือมีบางสิ่งที่เปลี่ยนเส้นทาง / ขัดขวางการรับส่งข้อมูลหรือไม่

หากคุณสามารถ ping ได้ทั้งสองทิศทางและ 'arp -n' ระบุว่ามีการใช้ที่อยู่ MAC ที่เหมาะสม (ตรวจสอบ 'ifconfig' บนเครื่องตรงข้าม) ขั้นตอนต่อไปคือการตรวจสอบ /var/log/auth.log บน Pi ควรบอกคุณว่ามีอะไรผิดปกติกับการพยายามเชื่อมต่อ

หากข้างต้นไม่ได้ช่วยโปรดแสดงผลจากคำสั่งต่อไปนี้ใน Pi:

sudo ifconfig -a
cat /etc/resolv.conf
arp -n
netstat -rn
sudo iptables-save
sudo grep ssh /var/log/auth.log | tail -50

และบนเดสก์ท็อปของคุณ:

sudo ifconfig -a
cat /etc/resolv.conf
arp -n
netstat -rn
sudo iptables-save

ฉันเห็นบางอย่างของการวางในความคิดเห็นด้านบน แต่สิ่งทั้งหมดเป็นสิ่งสำคัญที่จะต้องปิดไฟร์วอลล์ก่อน หากคุณสามารถทำให้มันทำงานกับไฟร์วอลล์ได้คุณสามารถทำการแก้ไขปัญหากฎไฟร์วอลล์ของคุณได้

นอกจากนี้แม้ว่าคุณจะกำหนดเป้าหมายที่อยู่ IP การตั้งค่า DNS ยังคงมีความสำคัญเนื่องจาก SSH ใช้ DNS ในระหว่างการตรวจสอบความถูกต้องของคีย์โฮสต์


0

ลบ~/.ssh/known_hostsไฟล์แล้วลองอีกครั้ง หากก่อนหน้านี้มีโฮสต์ที่สามารถเข้าถึงที่อยู่ IP เดียวกัน ssh คุณอาจเก็บลายนิ้วมือไม่ถูกต้อง


0

บน Ubuntu 13.10 ฉันไม่สามารถ ssh ไปยัง pi ของฉันเมื่อก่อนหน้านี้ได้ใน 13.04 และ Mint 16 เมื่อพยายาม

ssh -vvv user@host

ฉันได้ :

debug1: expecting SSH2_MSG_KEX_ECDH_REPLY

ฉันพบข้อเสนอแนะที่บอกให้ตั้งค่า MTU สำหรับเครื่อง (ไม่ใช่ pi) เป็น 1200 แทนที่จะเป็นอัตโนมัติ ฉันทำสิ่งนี้ปิด -> จากนั้นใช้ wifi ของฉันและเชื่อมต่อกับ ssh ถึง PI เมื่อลองครั้งแรก หวังว่านี่จะช่วยใครซักคน


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