ตามที่ท่านอื่นๆ ได้แสดงความคิดเห็นไว้ว่า HashKnownHosts ใช่
ทำให้ชื่อโฮสต์ไม่เติมข้อความอัตโนมัติเนื่องจากถูกแฮช เพิ่มลงในส่วน "ส่วนกลาง" โดยใช้ เจ้าภาพ *
เพื่อให้ตรงกับโฮสต์ทั้งหมด
เจ้าภาพ *
HashKnownโฮสต์หมายเลข
ในขณะที่ใช้งานได้ มันไม่ตอบสนองความต้องการของฉัน เพราะฉันชอบชื่อสั้นมากกว่าชื่อยาว และของฉัน ~/.ssh/config
ใช้ ชื่อโฮสต์
เพื่อแปลงชื่อย่อเป็น FQDN นี่ของฉัน การกำหนดค่า
.
เจ้าภาพ *
HashKnownโฮสต์หมายเลข
โฮสต์ ns-*
ชื่อโฮสต์ %h.example.com
IdentityFile ~/.ssh/%h
Identitiesเท่านั้นใช่
เมื่อเชื่อมต่อกับ ns-host01
ต่อไปนี้จะถูกเพิ่มลงใน known_hosts
.
ns-host01.example.com,192.16.0.104 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOl4AD310E/7OpWInZvotUO1rshKy/PuljvR9nQmamNPlZaXBneXGaufJ6Ox34AlgUVCSVQ4QM=
แต่นั่นไม่ได้ช่วยด้วยการเติมข้อความอัตโนมัติซึ่งเติม FQDN ให้สมบูรณ์ แม้ว่าฉันจะเพิ่มชื่อย่อด้วยตนเองได้ แต่มันก็... ด้วยตนเอง ฉันไม่พบสิ่งใดออนไลน์เพื่อเพิ่มสั้น และ ชื่อโฮสต์ยาวพร้อม IP ไปยัง known_hosts
. จากนั้นฉัน RTFM
-f ไฟล์
อ่านคู่โฮสต์หรือ âaddrlist namelistâ จากไฟล์ หนึ่งรายการต่อบรรทัด หากระบุ â-â แทนชื่อไฟล์ ให้ ssh-keyscan
จะอ่านจากอินพุตมาตรฐาน คาดว่าจะป้อนข้อมูลในรูปแบบ:
1.2.3.4,1.2.4.4 name.my.domain,ชื่อ,n.my.domain,n,1.2.3.4,1.2.4.4
โดยคำนึงถึงสิ่งนี้
echo "192.16.0.104,ns-host01,ns-host01.example.com" | ssh-keyscan -f - -t ecdsa,ed25519
สร้างสิ่งต่อไปนี้ซึ่งมีชื่อโฮสต์และ IP แบบสั้นและแบบยาว
192.16.0.104,ns-host01,ns-host01.example.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNF+UEbktGXlyYX/t1hvnIvxa+9fB67q15EjBkZUA2EkkTrcvLwASi6np9gqM5dCSpE0CkLeGP75UMFR8LOAgqM=
# 192.16.0.104:22 SSH-2.0-OpenSSH_8.1
192.16.0.104,ns-host01,ns-host01.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMibknxgW6cY7JUsKQEB/i188uS9SLx8JoiMg+YD3n7U
ผนวกเข้ากับของคุณ known_hosts
และตอนนี้การเติมข้อความอัตโนมัติก็ทำงานได้ตามที่คาดไว้ โดยหยุดที่ชื่อโฮสต์แบบสั้น