J'essaie de créer mon ~/.ssh/config
fichier pour simplifier ma vie professionnelle sur la connexion au serveur.
Dans Mavericks, tout fonctionnait correctement et tabje pouvais compléter automatiquement le nom d'hôte avec le fichier suivant:
Host test-host-name
HostName 192.168.1.2
User root
La même configuration sur Yosemite a un comportement différent. Lorsque je tape ssh t
sur le shell, tabcela ne complète pas automatiquement le nom d'hôte.
Est-ce que quelqu'un sait si quelque chose a changé à Yosemite et maintenant je dois faire quelque chose pour que cela fonctionne?
yosemite
bash
ssh
configuration
RikyTres
la source
la source
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
. Pourriez-vous préciser quelle version (celle ou celle qui convient) devrait être préférée et pourquoi?Je suppose que la coque de votre Mac est bash.
Vous devez compléter la commande ssh, pour plus de détails, vous pouvez lire
man complete
N'oubliez pas que vous avez besoin
source
du fichier pour que la nouvelle commande soit chargée dans votre terminal. ou Vous pouvez mettre ce code dans .bash_profilela source
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")
De cet article sur MacWorld .
Copiez / collez le texte suivant dans
~/.bash_profile
:Vous devrez ensuite redémarrer votre terminal ou taper
source ~/.bash_profile
(notez que ce dernier ne fonctionnera que dans votre onglet actuel).la source
Pour votre information, je ne sais pas comment répondre directement à la réponse de nelson car je n’ai pas encore acquis assez de réputation pour pouvoir la commenter, mais sur ma machine exécutant El Capitan, elle
^M
était ajoutée à tous les noms d’hôtes de mon fichier de configuration. . Je devais soit ajouter\r
à ma$IFS
variable ou supprimer / substituer toutes les instances de\r
la sortie de la secondecat
. Finalement, j'ai fait le dernier en ajoutanttr '\r' '\n'
pour que cette chaîne de commande ressemble à ceci:la source
Vous pouvez ajouter des entrées dans / etc / hosts et les utiliser dans la saisie semi-automatique du nom d'hôte:
Le redémarrage est requis pour que le système recharge ce fichier.
la source