So aktivieren Sie die automatische Vervollständigung von ssh in Debian und Ubuntu:
sudo apt-get install bash-completion
Beachten Sie, dass dies im Gegensatz zu den obigen Ausführungen und der ursprünglichen Frage überhaupt nichts mit dem Hashing von known_hosts zu tun hat . Wenn Sie von known_hosts aus automatisch vervollständigen möchten, müssen Sie natürlich das Hashing deaktivieren, aber das wird dringend empfohlen.
Zum Beispiel habe ich:
Host *
HashKnownHosts yes
in meiner .ssh / config, und ich habe immer noch ssh Auto-Vervollständigung funktioniert gut gegen Hosts in .ssh / config und / etc / hosts aufgeführt. Sie müssen den Host zu .ssh / config hinzufügen, wie im OP angegeben:
Host my-awesome-host Hostname the.real.host.name
(Oder Sie können einen Host-Eintrag zu / etc / hosts hinzufügen, eine weitere Quelle für die Debian / Ubuntu-Skripte.)
Dann können Sie einfach tippen ssh my-awe<tab>
und es wird automatisch vervollständigt. Auch dies ist selbst dann der Fall, wenn Sie HashKnownHosts verwenden, was sehr zu empfehlen ist. (Beachten Sie, dass die Bash-Vervollständigung in Ihrer Bash-Shell aktiviert sein muss und Sie diese Skripte wie oben für Ihre Distribution installiert haben müssen.)
Dann fügen Sie diese Zeilen zu Ihrem .bashrc
es ermöglichen (erfordert eine Abmeldung und melden Sie sich wieder in, oder einfach nur eine neue bash
typisierte in eine neue Shell zu starten. (Sie brauchen nicht zu aktivieren , wenn es bereits in aktiviert ist /etc/bash.bashrc
und /etc/profile
Quellen /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Dies ermöglicht es ssh Auto - Vervollständigung (unter anderem!) Aus ~/.ssh/config
, /etc/hosts
usw.
Beachten Sie, dass Debian standardmäßig ash anstatt bash verwendet. Sie können einfach zu bash wechseln:
sudo usermod -s /bin/bash "$USER"
(Sie müssen sich abmelden und erneut anmelden, damit dies wirksam wird.)