วิธีเปิดใช้งานการเติมข้อความอัตโนมัติ ssh ใน Debian และ Ubuntu:
sudo apt-get install bash-completion
โปรดทราบว่าสิ่งนี้ไม่มีอะไรเกี่ยวข้องกับ hashing ที่รู้จัก _hosts ตรงข้ามกับที่กล่าวไว้ข้างต้นและคำถามเดิม หากคุณต้องการเติมข้อความอัตโนมัติจาก known_hosts แน่นอนว่าคุณจะต้องปิดการใช้งาน hashing แต่ขอแนะนำอย่างยิ่ง
ตัวอย่างเช่นฉันมี:
Host *
HashKnownHosts yes
ใน. ssh / config ของฉันและฉันยังมีการเติมข้อมูลอัตโนมัติของ ssh ทำงานได้ดีกับโฮสต์ที่แสดงใน. ssh / config และ / etc / hosts คุณต้องเพิ่มโฮสต์ใน. ssh / config ตามที่ระบุไว้ OP:
โฮสต์ my-awesome-host Hostname the.real.host.name
(หรือคุณสามารถเพิ่มรายการโฮสต์ไปยัง / etc / hosts ซึ่งเป็นอีกหนึ่งแหล่งสำหรับสคริปต์ Debian / Ubuntu)
จากนั้นคุณสามารถพิมพ์ssh my-awe<tab>
และมันจะเสร็จสมบูรณ์โดยอัตโนมัติ อีกครั้งนี่คือแม้ว่าคุณ HashKnownHosts ซึ่งแนะนำเป็นอย่างยิ่ง (โปรดทราบว่าจะต้องเปิดใช้งานการเติม bash ให้เสร็จสิ้นใน bash shell ของคุณและคุณต้องติดตั้งสคริปต์เหล่านั้นไว้ด้านบนเพื่อการแจกจ่ายของคุณโดยเฉพาะ)
จากนั้นเพิ่มบรรทัดเหล่านี้ในของคุณ.bashrc
เพื่อเปิดใช้งาน (ต้องออกจากระบบและลงชื่อเข้าใช้ใหม่หรือbash
พิมพ์ใหม่เพื่อเปิดใช้เชลล์ใหม่ (คุณไม่จำเป็นต้องเปิดใช้งานหากเปิดใช้งานแล้ว/etc/bash.bashrc
และ/etc/profile
แหล่งที่มา/etc/bash.bashrc
)
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
นี้จะช่วยให้การเติมข้อความอัตโนมัติ SSH (เหนือสิ่งอื่น!) จาก~/.ssh/config
, /etc/hosts
ฯลฯ
โปรดทราบว่า Debian จะใช้ค่าเริ่มต้นเป็นเถ้าแทนการทุบตี คุณสามารถเปลี่ยนเป็นทุบตีได้อย่างง่ายดาย:
sudo usermod -s /bin/bash "$USER"
(คุณจะต้องออกจากระบบและลงชื่อเข้าใช้ใหม่เพื่อให้การดำเนินการนี้มีผล)