ฉันจะข้ามคำถาม“ known_host” ในครั้งแรกที่ฉันเชื่อมต่อกับเครื่องผ่าน SSH ด้วยกุญแจสาธารณะ / ส่วนตัวได้อย่างไร [ซ้ำ]


16

ฉันจะข้ามคำถาม "known_host" ในครั้งแรกที่ฉันเชื่อมต่อกับเครื่องผ่าน SSH ด้วยกุญแจสาธารณะ / ส่วนตัวได้อย่างไร


ทำไมสิ่งนี้จึงถูกทำเครื่องหมายว่าซ้ำซ้อนเมื่อเทียบกับคำถามอื่น
Jason Axelson

คำตอบ:


31

คำตอบปัจจุบันอื่น ๆ ทั้งหมดหายไป UserKnownHostsFile = / dev / null

หากคุณต้องการที่จะทำเมื่อคุณสามารถใช้:

ssh -o StrictHostKeychecking=no hostname

หากคุณต้องการทำซ้ำคุณควรเพิ่มสิ่งต่อไปนี้ใน ~ / .ssh / config

Host 192.168.0.*
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

การกำหนดค่านี้บน OpenSSH สำหรับ Windows เพียงแทนที่ด้วย/dev/nullNUL

คำอธิบายที่ดีจาก: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html


2
ฉันตามหาตัวกรอง subnet มาหลายเดือนแล้ว (ไม่กระตือรือร้น) นี่คือสิ่งที่ฉันต้องการ เรามีเครือข่ายการพัฒนาขนาดเล็กที่มี DHCP และอุปกรณ์ของเรามักจะได้รับที่อยู่ IP ใหม่ทำให้การเชื่อมต่อกับพวกเขาง่ายขึ้นมาก ขอบคุณ!
Adam Lewis

13

เปิดStrictHostKeyCheckingปิดผ่านssh_configหรือเลือกบรรทัดคำสั่ง


/ etc / SSH / ssh_config หรือ ~ / .ssh / config --- หรือสิ่งที่เทียบเท่าที่อยู่บนหน้าต่างถ้าว่าเป็นแพลตฟอร์มที่ลูกค้าของคุณ
ดั๊กแฮร์ริส

3

คุณสามารถรับพับลิกคีย์เพิ่มลงในไฟล์ known_hosts จากนั้นรีเฟรช:

ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old

2
$ ssh -o StrictHostKeychecking=no hostname

นี่จะทำให้การตรวจสอบถูกข้ามไปและกุญแจของโฮสต์ระยะไกลจะถูกเพิ่มโดยอัตโนมัติในการเข้าสู่ระบบครั้งแรก (นอกจากนี้ยังมีตัวเลือก CheckHostIP แต่ดูเหมือนจะไม่ปิดใช้งานการตรวจสอบจริง ๆ ว่ามีคีย์อยู่หรือไม่)


2
ฉันยังต้องการใช้ UserKnownHostsFile เพื่อไม่ให้จดจำลายเซ็นในระบบของฉัน เคล็ดลับดี:ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no hostname
ตาดา

2

ฉันใช้เวลาสักครู่เพื่อค้นหา usecase ที่พบบ่อยที่สุดที่ฉันเคยเห็นคือเมื่อคุณมี ssh tunnels ไปยังเครือข่ายระยะไกล โซลูชันทั้งหมดที่นี่ผลิตคำเตือนที่ทำให้สคริปต์ของฉัน (nagios) เสียหาย

ตัวเลือกที่ฉันต้องการคือ:

NoHostAuthenticationForLocalhost yes

ซึ่งตามชื่อแนะนำนั้นจะใช้กับ localhost เท่านั้น


0

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

cat /etc/ssh/ssh_host_rsa_key.pub

เพิ่มชื่อโฮสต์ของเครื่องและเพิ่มบรรทัดนั้นไปยังไฟล์ ~ / .ssh / known_hosts บนเครื่องของคุณ คุณจะพบกับสิ่งที่ดูเหมือน:

myhost.example.com ssh-rsa AAAAB3Netc ...

อีกวิธีหนึ่งถ้าคุณต้องการคว้าลายนิ้วมือของคีย์ซึ่งอาจจะง่ายกว่าในการถ่ายโอนผ่านช่องสัญญาณแบนด์วิดธ์ที่ จำกัด (เช่นโทรศัพท์) คุณสามารถช่วยผู้ช่วยของคุณได้:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

0

หากคุณต้องการปิดการใช้งานการตรวจสอบโฮสต์ชั่วคราวเพื่อให้คุณสามารถเข้าสู่ระบบ LiveCD ตัวอย่างเช่นเปลี่ยนชื่อ~/.ssh/known_hostsเป็นอย่างอื่นแล้วเปลี่ยนกลับเมื่อดำเนินการเสร็จ


-2
  1. เพิ่ม "StrictHostKeyChecking no" ใน / etc / ssh / ssh_config
  2. cd ~ / .ssh
  3. rm known_hosts
  4. ln -s / dev / null known_hosts

การเล่นชนิดหนึ่ง


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