Как я делаю сбой ssh, а не подсказку для пароля, если аутентификация с открытым ключом перестала работать?

Сделайте это сами. Сделайте простой сценарий оболочки, обновляющий базу данных RRD. Затем потяните график с помощью rrdtool.

108
задан 17 February 2017 в 15:42
5 ответов

Для OpenSSH существует BatchMode, который в дополнение к отключению запроса пароля, должен отключить запросы для пароля (паролей) для ключей.

BatchMode

Если установлено на “да”, пароль/пароль, запрашивающий, будет отключен. Эта опция полезна в сценариях и других пакетных заданиях, где никакой пользователь не присутствует для предоставления пароля. Аргумент должен быть “да” или "нет". Значение по умолчанию является "нет".

Демонстрационное использование:

ssh -oBatchMode=yes -l <user> <host> <dostuff>
140
ответ дан 28 November 2019 в 19:20

Добавьте следующее к Вашему ~/.ssh/config:

PasswordAuthentication no

и отключить аутентификацию по паролю на сервере, добавьте ту же строку к /etc/ssh/sshd_config и перезапуск sshd.

21
ответ дан 28 November 2019 в 19:20
  • 1
    если Вы don' t хотят отключить автора пароля для всех ssh соединений клиента, можно также указать опции на командной строке. добавьте '-oPasswordAuthentication=no' к Вашей команде ssh. –  cas 3 September 2009 в 14:23
  • 2
    Это не предотвращает подсказку пароля. OP' s сценарий все еще зависнет. –  Joshua Swink 4 November 2009 в 22:02

При использовании dropbear просто добавьте"-s"опция отключить аутентификацию по паролю.

12
ответ дан 28 November 2019 в 19:20

На командной строке (или ~/.ssh/config) можно установить PreferredAuthentications.

PreferredAuthentications=publickey
8
ответ дан 28 November 2019 в 19:20
  • 1
    Я думаю, что на командной строке необходимо перенести опцию в кавычки и затем передать ее-o опции. –  Craig Walker 11 September 2009 в 04:20

Вот пример фрагмента скрипта sftp bash. Я использую "-o BatchMode=Yes", чтобы отключить запрос пароля в случае сбоя. И проверьте код возврата frp, чтобы проверить, не удалось ли установить ftp-соединение.

sftp -o "IdentityFile=<YOUR_IDENTTIY_FILE>"  -o "BatchMode=Yes" userName@ftpserver.com <<EOF

cd /$remotepath
mget *.csv $localpath/download

quit
EOF
exit_code=$?
if [[ $exit_code != 0 ]]; then
   echo "sftp error, failed to connect to ftp server" >&2
   exit 1
fi
2
ответ дан 18 June 2020 в 15:55

Теги

Похожие вопросы