Estou tentando criar meu ~/.ssh/config
arquivo para simplificar minha vida profissional na conexão do servidor.
No Mavericks tudo funcionou corretamente e com o tabI foi capaz de completar automaticamente o nome do host com um arquivo como este:
Host test-host-name
HostName 192.168.1.2
User root
A mesma configuração no Yosemite tem um comportamento diferente. Quando digito ssh t
no shell, o tabpreenchimento automático não é automático.
Alguém sabe se algo mudou em Yosemite e agora eu preciso fazer algo para fazê-lo funcionar?
yosemite
bash
ssh
configuration
RikyTres
fonte
fonte
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
. Você poderia elaborar qual versão (essa ou a sua) deve ser preferida e por quê?Presumo que o shell do seu Mac seja uma festança.
Você precisa concluir o comando ssh, para obter mais detalhes, pode ler
man complete
Não esqueça que você precisa
source
do arquivo para obter o novo comando para carregar no seu terminal. ou Você pode colocar esse código em .bash_profilefonte
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")
Deste artigo no MacWorld .
Copie / cole o seguinte em
~/.bash_profile
:Você precisará reiniciar o terminal ou digitar
source ~/.bash_profile
(observe que o último só funcionará na sua guia atual).fonte
Para sua informação, não tenho certeza de como responder diretamente à resposta de nelson, pois ainda não tenho reputação suficiente para comentar sobre ela, mas na minha máquina executando o El Capitan,
^M
estava sendo anexado a todos os nomes de host do meu arquivo de configuração . Eu tive que adicionar\r
à minha$IFS
variável ou remover / substituir todas as instâncias da\r
saída da segundacat
. No final, eu fiz o último adicionandotr '\r' '\n'
para fazer com que a cadeia de comando fique assim:fonte
Você pode adicionar entradas no / etc / hosts e usá-las no preenchimento automático do nome do host:
É necessário reiniciar o sistema para recarregar esse arquivo.
fonte