Если вы хотите запустить ssh-клиент, вы можете сделать это в bash:
#files are .ssh/config and ~/.ssh/foo.config
alias ssh='ssh -F <(cat .ssh/config ~/.ssh/foo.config)'
тогда вы используете ssh как обычно, и оба файла будут прочитаны в указанном порядке.
Для демона сервера sshd
вы можете сделать то же самое, просто используйте -f
вместо -F
и запишите это там, где вы запускаете демон напрямую. вам не нужен псевдоним.
Вторая возможность в соответствии со страницей руководства - поместить общесистемную конфигурацию в /etc/ssh/ssh_config
а пользовательскую - в ~/.ssh/config
.
Обновление Очевидно, что есть некоторые проблемы с некоторыми версиями bash и тем, как создаются устройства. (см. http://bugs.alpinelinux.org/issues/1465)
Это обходной путь (хотя, на мой взгляд, некрасиво):
mkfifo /tmp/ssh_fifo
cat ~/.ssh/config ~/.ssh/foo.config >/tmp/ssh_fifo &
ssh -F /tmp/ssh_fifo myserver
rm /tmp/ssh_fifo
так что если вы хотите, вы можете создать из него функцию (или скрипт):
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"
}