Я могу ssh user@remotemachine без пароля, используя пару ключей с пустой парольной фразой. Однако, когда я делаю sudo -u user ssh user@remotemachine он продолжает запрашивать пароль. Также sudo -u user ssh -i /home/user/.ssh/id_rsa user@remotemachine не помогает. Это почему?

Предыстория: я запускаю скрипт на python от имени sudo, и из этого скрипта мне нужно использовать ssh для удаленного доступа в качестве пользователя.

Любая помощь приветствуется!

РЕДАКТИРОВАТЬ

В ответ на комментарий я повторил попытку с опцией -vv. Все выглядит нормально, ключ найден, отправлен на сервер и принят. Однако затем идут следующие строки:

debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp <here was the fingerprint>
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/user/.ssh/id_rsa':

1 ответ1

0

Хорошо, это была моя вина. Ключ был фактически зашифрован, как я мог видеть, открыв его в текстовом редакторе. Тот факт, что без sudo меня не спрашивали о парольной фразе, был вызван тем, что я уже ввел парольную фразу при входе в систему (я полагаю, что это кэширует какая-то утилита gnome) и забыл об этом из-за длительного времени работы :)

С sudo, я думаю, я не смог получить доступ к этому кешированному паролю.

Чтобы расшифровать закрытый ключ, вы можете использовать openssl rsa -in id_rsa -out id_rsa.decr , затем rm id_rsa , а затем mv id_rsa.decr id_rsa .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .