LINUX.ORG.RU

Каким образом можно узнать, что открытый SSH-ключ уже скопирован?

 , ,


1

1

Привет, народ.

Что-то туплю я. Мне нужно каким-то образом узнать в BASH-скрипте, что открытый SSH-сертификат уже был скопирован на противоположную сторону.

Ну, то есть, для копирования сертификата выполнялись команды:

ssh-keygen -t rsa -q -N ''
ssh-copy-id -i ~/.ssh/id_rsa.pub ouruser@ourserver.lo

Теперь перед этими командами надо сделать проверку, что сертификат уже был передан, чтобы их повторно не вызывать без необходимости.

Вопрос: каким способом наиболее просто можно проверить, что сертификат скопирован? Я так понимаю, надо как-то установить SSH-соединение, если оно установится, то сертификат есть. Но как его установить, как его разорвать внутри bash-скрипта что-то не могу сообразить.

★★★★★

А почему бы просто ещё раз не скопировать? По скорости – одинаково, дубликат ключа оно не создаст. Посмотри exit codes у ssh-copy-id в обоих случаях.

kardapoltsev ★★★★★
()
Ответ на: комментарий от kardapoltsev

А почему бы просто ещё раз не скопировать?

Потому что пользователь должен быть предупрежден в консоли гигантским баннером что сертификат еще не скопирован, и скрипт должен молча работать если сертификат уже лежит на сервере.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от beastie

if `ssh -q -oBatchMode=yes -t <host> exit`; then
echo ok
fi

Благодарю, работает.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.