Si vous voulez démarrer un client ssh, vous pouvez le faire en bash :
#files are .ssh/config and ~/.ssh/foo.config
alias ssh='ssh -F <(cat .ssh/config ~/.ssh/foo.config)'
puis vous utilisez ssh normalement et les deux fichiers seront lus dans cet ordre.
Pour le démon du serveur sshd
vous pourriez faire la même chose, en utilisant simplement -f
au lieu de -F
et notez-le à l'endroit où vous démarrez directement le démon. Vous n'avez pas besoin d'un alias.
Une deuxième possibilité, selon la page de manuel, est de mettre la configuration du système dans le répertoire /etc/ssh/ssh_config
et celui de l'utilisateur dans ~/.ssh/config
.
Mise à jour Apparemment, il y a un problème avec certaines versions de bash et la façon dont les périphériques sont créés. (voir http://bugs.alpinelinux.org/issues/1465 )
Il s'agit d'une solution de contournement (bien qu'elle soit, à mon avis, laide) :
mkfifo /tmp/ssh_fifo
cat ~/.ssh/config ~/.ssh/foo.config >/tmp/ssh_fifo &
ssh -F /tmp/ssh_fifo myserver
rm /tmp/ssh_fifo
donc si vous voulez, vous pouvez créer une fonction à partir de cela (ou un script) :
ssh() {
tmp_fifo=$(mktemp -u --suffix=_ssh_fifo)
mkfifo "$tmp_fifo"
cat ~/.ssh/config ~/.ssh/foo.config >"$tmp_fifo" 2>/dev/null &
/usr/bin/ssh -F "$tmp_fifo" "$@"
rm "$tmp_fifo"
}