ssh config wildcards เพื่อหลีกเลี่ยงการพิมพ์ชื่อผู้ใช้


12

ฉันมักจะ ssh ลงในอินสแตนซ์ openstack อินสแตนซ์ทั้งหมดอยู่บน vlan และซับเน็ตเฉพาะ (10.2.xx) อินสแตนซ์ทั้งหมดมีชื่อผู้ใช้เดียวกัน (bob)

ฉันเชื่อมต่อเช่นนั้น:

ssh bob@10.2.x.x

หรือบางครั้งเช่นนี้

ssh 10.2.x.x -l bob

เป็นไปได้หรือไม่ที่จะกำหนดค่าแล็ปท็อปของฉันให้ใช้ชื่อ bob โดยอัตโนมัติเมื่อฉันเปลี่ยนเป็น vm ใด ๆ บนซับเน็ต 10.2.xx ฉันไม่ต้องการใช้บ๊อบโดยอัตโนมัติเมื่อ sshing เป็นเครื่องบนซับเน็ตอื่น

ดูเหมือนว่าssh configไม่รองรับอักขระตัวแทน (แก้ไขฉันถ้าฉันผิด) ฉันคิดว่าอาจมีนามแฝงทำสิ่งนี้ได้ แต่ฉันไม่แน่ใจว่าไวยากรณ์จะเป็นอย่างไร

คำตอบ:


18

หน้าคน ssh_config มีส่วนที่PATTERNSมีรายละเอียดวิธีการที่คุณสามารถทำเช่นนั้นคุณสามารถใช้สัญลักษณ์แทนของและ* ?ในของฉัน~/.ssh/config:

Host 172.16.*.*
   User drav

แล้วในการออกssh -vvv 172.16.13.1:

debug1: Reading configuration data /home/drav/.ssh/config
debug1: /home/drav/.ssh/config line 4: Applying options for 172.16.*.*
debug1: /home/drav/.ssh/config line 46: Applying options for *

โปรดทราบว่าการจับคู่เหล่านี้เป็นที่ยอมรับดังนั้นหาก "fred.mynetwork.com" ใน DNS คือ 172.16.13.1 การออกssh fred.mynetwork.comจะไม่ตรงกับHost 172.16.*.*รายการ อย่างไรก็ตามคุณสามารถเพิ่มHost *.mynetwork.comรายการเพิ่มเติมเพื่อใช้ตัวเลือกเดียวกันเมื่อใช้ชื่อ DNS แทน


ใช่รายการHost 10.2*จะทำเคล็ดลับ
Bananguin

ฉันพบ 10.2. *. * ทำให้คีย์ของฉันถูกปฏิเสธ การเปลี่ยนเป็น 10.2. * ทำให้การเชื่อมต่อสำเร็จ
spuder

1
แปลกสำหรับฉัน xx *. * ทำงาน: / อย่างน้อยก็มีความคิดเห็นของคุณถ้ามีคนพบปัญหา!
Drav Sloan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.