Saya mencoba membuat ~/.ssh/config
file saya untuk menyederhanakan kehidupan kerja saya di koneksi server.
Di Mavericks semuanya bekerja dengan baik dan dengan tabsaya dapat melengkapinya secara otomatis hostname dengan file seperti ini:
Host test-host-name
HostName 192.168.1.2
User root
Konfigurasi yang sama pada Yosemite memiliki perilaku yang berbeda. Ketika saya mengetikkan ssh t
shell, tabtidak melengkapi nama host secara otomatis.
Apakah ada yang tahu jika ada sesuatu yang berubah di Yosemite dan sekarang saya perlu melakukan sesuatu untuk membuatnya berfungsi?
yosemite
bash
ssh
configuration
RikyTres
sumber
sumber
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
. Bisakah Anda menguraikan versi mana (itu atau milik Anda) yang harus dipilih dan mengapa?Saya menganggap shell Mac Anda adalah bash.
Anda perlu menyelesaikan perintah ssh, untuk lebih jelasnya Anda bisa membaca
man complete
Jangan lupa Anda perlu
source
file untuk mendapatkan perintah baru untuk memuat di terminal Anda. atau Anda dapat meletakkan kode ini di .bash_profilesumber
comp_ssh_hosts=$(awk -F , 'FNR== NR && ! /^#|\[/ {field = $1} FNR != NR && /^Host / {field = $2} {hosts[field]} END {for (host in hosts) {print host}' "$HOME/.ssh/known hosts" "$HOME/.ssh/config")
Dari artikel ini di MacWorld .
Salin / rekatkan yang berikut ini ke
~/.bash_profile
:Anda kemudian harus me-restart terminal atau tipe Anda
source ~/.bash_profile
(perhatikan bahwa yang terakhir hanya akan bekerja di tab Anda saat ini).sumber
FYI, saya tidak yakin bagaimana menjawab langsung jawaban nelson karena saya belum membangun cukup reputasi untuk mengomentarinya, tetapi pada mesin saya yang menjalankan El Capitan,
^M
sedang ditambahkan ke semua nama host dari file konfigurasi saya . Saya harus menambahkan\r
ke$IFS
variabel saya atau menghapus / mengganti semua contoh dari\r
output yang keduacat
. Pada akhirnya, saya melakukan yang terakhir dengan menambahkantr '\r' '\n'
agar rantai perintah itu terlihat seperti ini:sumber
Anda dapat menambahkan entri di / etc / hosts dan menggunakannya dalam nama host autocomplete:
Reboot diperlukan sistem untuk memuat ulang file ini.
sumber