Як відключити запрошення пароля від клієнта ssh?


9

У мене є сценарій, який спирається на аутентифікацію ssh з відкритим / приватним ключем. Проблема полягає в тому, що деякі системи неправильно налаштовані і не мають належної довіри ssh для публічного / приватного ключа. Коли це станеться, sshпопросіть мене пароль, що блокує виконання сценарію. Я спробував цю команду:

sudo ssh -o "PasswordAuthentication=no" -o "ChallengeResponseAuthentication=no" root@last-call

Але мені все одно пропонується ввести пароль root.


Після проб і помилок я знайшов потрібний мені варіант. "PreferredAuthentications=publickey"
Червоний крикет

це краще, ніж пропоноване рішення? (BatchMode)
knocte

Відповіді:


9

Канонічний спосіб зробити це за допомогою BatchModeпараметра:

ssh -o BatchMode=yes …

Відповідно до посібника :

Якщо встановлено значення "так", запит парольної фрази / пароля буде вимкнено. Цей параметр корисний у сценаріях та інших пакетних роботах, де немає користувача, який надає пароль.

Я б очікував, що комбінації PasswordAuthentication=noі цього ChallengeResponseAuthentication=noбуде достатньо. ssh -vvможе дати зрозуміти.


Це теж працює! $ sudo ssh last-call-2 Password: $ sudo ssh -o "BatchMode=yes" last-call-2 Permission denied (gssapi-keyex,gssapi-with-mic,publickey,password,keyboard-interactive).
Червоний крикет
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.