тест bash / ssh для аутентификации с открытым ключом - PullRequest
12 голосов
/ 24 апреля 2011

Есть ли способ программно проверить, может ли ssh аутентифицироваться с использованием открытого ключа? Я хотел бы сделать что-то вроде этого (желательно в Bash, но я открыт для решения Python):

ssh-test-thingy user@host || echo "could not authenticate using publickey"

где ssh-test-thingy возвращает ненулевой статус выхода, если на удаленном хосте не найдено открытого ключа.

1 Ответ

18 голосов
/ 24 апреля 2011

Я бы передал опцию -o BatchMode=yes в ssh и посмотрел, работает ли она.Он отключит запрос пароля, что, на мой взгляд, на практике эквивалентно вашему желанию выяснить, возможна ли аутентификация по ключам.ssh-test-thingy можно записать в виде bash-скрипта следующим образом:

exec ssh -o BatchMode=yes "$@" true

Это просто передаст user @ host (и любые другие аргументы) и попытается запустить true на удаленном хосте,который, если он работает, немедленно вернет код состояния успеха (0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...