Pull to refresh

Comments 12

Если в ~/.bash_completion добавить строку вида:
complete -W "$(grep "^Host " ~/.ssh/config | grep -v "\*" | sed 's/[^ ]* *\(.*\)/\1/')" ssh
то станет возможным использовать ssh <TAB><TAB> для подстановки имени ssh-сервера. Работает в bash.

Спасибо, попробую! Собственно ради этого я и придумывал поиск по списку, а с табом будет намного удобнее.
UFO just landed and posted this here

Есть же пакет bash-completion, в котором очень продвинутые правила для ssh.

котором очень продвинутые правила для ssh

Например?

Ну, посмотрите сами же. Например, парсить config указанный с параметром -F, а не ~/.ssh/config.

Freeipa + авторизация по ключам не проще?
Не знаком с FreeIpa, судя по официальному сайту — это либо не совсем то, что надо, либо просто слишком сложно. FreeIpa реализует SSO, в т.ч. позиционируя себя как аналог MS AD, и позволяет выполнять массово одинаковые таски сразу на многих подчиненных машинах — если я правильно все понял. Возможно, вместе с этим она позволит и упростить подключение к каждому отдельному серверу, но это будет явно из пушки по воробьям в моем случае.
Моя цель в данном случае была именно обеспечить подключение к каждому хосту по его понятному для меня имени, с возможностью поиска.
Для массового выполнения скриптов мы используем Ansible. Для авторизации на серверах — ключи.

У вас вначале описка, слэш забыли "~.ssh/config"

grep "^Host " ~/.ssh/config | grep -v "\*" | sed 's/[^ ]* *\(.*\)/\1/'

$ awk '/^Host/ {if ($2 !~ "*") print $2}' ~/.ssh/config
$ awk '/^Host [^*]+/ {print $2}' ~/.ssh/config
UFO just landed and posted this here
Sign up to leave a comment.

Articles