Debian ve Ubuntu'da ssh autocompletion özelliğini etkinleştirmek için:
sudo apt-get install bash-completion
Bunun, yukarıda belirtilenlere ve orijinal soruya aykırı olarak, bilinen_hosts karması ile hiçbir ilgisi olmadığını unutmayın . Bilinen_host'lardan otomatik olarak tamamlanmak istiyorsanız, o zaman elbette hashlemeyi devre dışı bırakmanız gerekir, ancak buna karşı şiddetle tavsiye edilir.
Örneğin, var:
Host *
HashKnownHosts yes
benim .ssh / config ve hala ssh otomatik tamamlama hala .ssh / config ve / etc / hosts dosyasında listelenen ana bilgisayarlara karşı iyi çalışıyor. OP'yi belirtildiği gibi ana bilgisayarı .ssh / config dosyasına eklemeniz gerekir:
Host-host-host Hostname, the.real.host.name
(Veya, Debian / Ubuntu komut dosyaları için başka bir kaynak olan / etc / hosts dosyasına bir ana bilgisayar girişi ekleyebilirsiniz.)
Sonra, sadece yazabilirsiniz ssh my-awe<tab>
ve otomatik olarak tamamlanacaktır. Yine, bu şiddetle tavsiye edilir, HashKnownHosts olsa bile. (Bash tamamlamanın bash kabuğunuzda etkinleştirilmiş olması gerektiğini ve dağıtımınız için yukarıdaki gibi bu komut dosyalarının özellikle yüklü olması gerektiğini unutmayın.)
Ardından, .bashrc
etkinleştirmek için bu satırları ekleyin (oturumu kapatıp tekrar oturum bash
açmayı veya yeni bir kabuk başlatmak için sadece yeni bir giriş yapmayı gerektirir . (Zaten etkinleştirilmişse /etc/bash.bashrc
ve /etc/profile
kaynakları etkinleştirmeniz gerekmez /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Bu (diğer şeylerin yanı sıra!) Ssh otomatik tamamlama sağlayacak dan ~/.ssh/config
, /etc/hosts
vb
Debian'ın bash yerine ash olarak varsayılan olduğunu unutmayın. Kolayca bash geçiş yapabilirsiniz:
sudo usermod -s /bin/bash "$USER"
(Bunun etkili olması için oturumu kapatıp tekrar açmanız gerekir.)