ทำไม SSH ถึงไม่ปรึกษา / etc / hosts?


13

ฉันจัดการสภาพแวดล้อมเครือข่ายที่ผู้ใช้รับรองความถูกต้องผ่าน NIS เครื่องทั้งหมดสามารถใช้ SSH ในเซิร์ฟเวอร์ได้ บนเครื่องที่มีปัญหาฉันได้รับข้อความ

ssh: connect to host servername port 22: Connection refused

ฉันเปรียบเทียบstraceผลลัพธ์จากเครื่องที่มีปัญหาและเครื่องที่สามารถ SSH เข้ากับเซิร์ฟเวอร์ได้อย่างถูกต้อง
ปรากฎว่าเครื่องที่ไม่สามารถ SSH เป็นเซิร์ฟเวอร์ไม่ได้ปรึกษา/etc/hostsในขณะที่เครื่องที่สามารถ SSH ทำอย่างถูกต้อง ทั้งสองเครื่องได้/etc/hostsตั้งค่าชื่อเซิร์ฟเวอร์และ IP ในที่สุดเครื่องที่ไม่ปรึกษา/etc/hostsก็พยายามเชื่อมต่อกับ 127.0.0.1(localhost) และล้มเหลวด้วยข้อความข้างต้น สิ่งใดที่ทำให้เกิดสิ่งนี้

ข้อมูลเพิ่มเติม:

  • เซิร์ฟเวอร์ที่ฉันพยายามจะใช้ SSH ก็ทำหน้าที่เป็นเซิร์ฟเวอร์ชื่อและทั้งสองเครื่องจะพิจารณาในขณะที่พยายามใช้ SSH
  • เครื่องที่ไม่สามารถเข้า SSH เซิร์ฟเวอร์สามารถ SSH อย่างถูกต้องลงไปในเครื่องอื่น ๆ เมื่อฉันบันทึกการแสดงให้เห็นว่าเครื่องที่ให้คำปรึกษา nameserver (เวลานี้ประสบความสำเร็จ) และบริหารจัดการเพื่อแก้ไขชื่อเครื่องระยะไกลได้อย่างถูกต้องและเชื่อมต่อกับมัน
    ssh machinename
    strace

แก้ไข: ฉันยินดีที่จะให้ข้อมูลเพิ่มเติมใด ๆ ที่คุณคิดว่าอาจช่วยแก้ปัญหานี้


1
สิ่งใดที่คุณจะได้รับเมื่อคุณเพิ่ม -vvv ไปยังคำสั่ง ssh
ภูตแห่งความโกลาหล

คำตอบ:


18

nsswitch.confมันเสียงฉันต้องการโฮสต์ปัญหาไม่ได้มีการกำหนดค่าได้อย่างถูกต้อง

hostsสาย/etc/nsswitch.confควรมีลักษณะบางอย่างเช่นนี้

hosts:  files nisplus nis dns

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


1
ถูกต้องกับเงิน! ฉันเปรียบเทียบกับโฮสต์ที่ทำงานและทำการเปลี่ยนแปลงตามที่ต้องการ ขอบคุณมาก! ฉันต้องการลงคะแนนคุณขึ้นถ้าผมมีตัวแทน :)
โจเซฟอาร์

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