Próbuję utworzyć ~/.ssh/config
plik, aby uprościć życie w połączeniu z serwerem.
W Mavericks wszystko działało poprawnie, a dzięki tabI mogłem automatycznie uzupełnić nazwę hosta za pomocą pliku takiego:
Host test-host-name
HostName 192.168.1.2
User root
Ta sama konfiguracja w Yosemite ma inne zachowanie. Kiedy piszę ssh t
w powłoce tab, nie uzupełnia automatycznie nazwy hosta.
Czy ktoś wie, czy coś się zmieniło w Yosemite, a teraz muszę coś zrobić, aby to zadziałało?
yosemite
bash
ssh
configuration
RikyTres
źródło
źródło
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
. Czy możesz wyjaśnić, która wersja (ta lub Twoja) powinna być preferowana i dlaczego?Zakładam, że powłoka twojego Maca to bash.
Musisz wykonać polecenie ssh, aby uzyskać więcej informacji, które możesz przeczytać
man complete
Nie zapomnij, że potrzebujesz
source
pliku, aby nowe polecenie załadowało się do terminala. lub Możesz umieścić ten kod w .bash_profileźródło
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")
Z tego artykułu na temat MacWorld .
Skopiuj / wklej następujące elementy do
~/.bash_profile
:Następnie musisz ponownie uruchomić terminal lub wpisać
source ~/.bash_profile
(pamiętaj, że ten ostatni będzie działał tylko na bieżącej karcie).źródło
Do Twojej wiadomości, nie jestem pewien, jak odpowiedzieć bezpośrednio na odpowiedź Nelsona, ponieważ nie zbudowałem jeszcze wystarczającej reputacji, aby skomentować ją, ale na moim komputerze z El Capitan
^M
był dołączany do wszystkich nazw hostów z mojego pliku konfiguracyjnego . Musiałem albo dodać\r
do mojej$IFS
zmiennej, albo usunąć / podstawić wszystkie wystąpienia\r
z wyjścia drugiegocat
. Na koniec zrobiłem to drugie, dodając,tr '\r' '\n'
aby ten łańcuch poleceń wyglądał tak:źródło
Możesz dodawać wpisy do / etc / hosts i używać ich w autouzupełnianiu nazw hostów:
Ponowne uruchomienie jest wymagane, aby system mógł ponownie załadować ten plik.
źródło