Saya memiliki daftar besar server yang biasanya saya miliki ssh
sepanjang waktu. Apakah ada cara menggunakan bash
atau zsh
agar saya dapat menyimpan daftar nama host dan bash penyelesaian otomatis melalui file dan memberi saya saran untuk kotak yang dimulai dengan huruf-huruf itu setiap kali saya mengetik beberapa huruf pertama dari nama host.
bash
ssh
zsh
autocomplete
pradeepchhetri
sumber
sumber
The selesai pesta paket termasuk penyelesaian untuk
ssh
perintah, termasuk:ssh
ssh-add
ssh-copy-id
sshfs
Anda dapat menelusuri sumbernya di sini: https://alioth.debian.org/scm/browser.php?group_id=100114
sumber
Disalin dari jawaban saya sendiri di unix.SE :
Jika Anda menggunakan host Ubuntu, maka Anda harus tahu bahwa di Ubuntu entri di
~/.ssh/known_hosts
hash , sehingga penyelesaian SSH tidak dapat membacanya. Ini adalah fitur, bukan bug. Bahkan dengan menambahkanHashKnownHosts no
ke~/.ssh/config
dan/etc/ssh/ssh_config
saya tidak dapat mencegah hashing tuan rumah.Namun, Anda dapat membaca entri yang dikonfigurasi dari
~/.ssh/config
, yang bukan hash. Berikut ini adalah skrip untuk Bash Completion yang membaca entri dari file itu:Masukkan script itu
/etc/bash_completion.d/ssh
dan kemudian sumber dengan perintah berikut:Saya menemukan panduan ini sangat berharga dan saya tidak akan dapat menulis tanpa ini. Terima kasih Steve Kemp untuk menulis panduan hebat itu!
sumber
opts=$(grep '^Host' ~/.ssh/config | sed 's@^Host @@')
karena~/.ssh/config
sintaksnya memungkinkan untuk beberapa nama pada satu barisAgar ini berfungsi, masukkan semua host yang ingin Anda selesaikan dalam
/etc/hosts
file Anda .Anda juga perlu
bash-completion
mengemas (berisi file / etc / bash_completion dan direktori /etc/bash_completion.d)dan sumbernya di ~ / .bashrc (
. /etc/bash_completion
- terkadang dikomentari di /etc/bash.bashrc atau di ~ / .bashrc).sumber
man ssh_config
untuk detail lebih lanjut, tetapi jauh lebih fleksibel memungkinkan Anda untuk menentukan beberapa alias, nama pengguna, port, dan banyak lagi./etc/ssh/ssh_config
, saya tidak memiliki penyelesaian yang bekerja untuk host yang dikonfigurasi.ohmyzsh
.known_hosts
serta file konfigurasi lainnya, misalnya.,~/.ssh/config