відкритий ключ завжди просить пароль та фразу


19

Я намагаюся SSH від NAS до веб-сервера, використовуючи відкритий ключ. Користувач NAS - це «root», а користувач веб-сервера - «резервний»

У мене всі дозволи встановлені правильно, і коли я налагоджую SSH-з'єднання, я отримую: (останній трохи налагодження)

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':

Я використовую команду:

ssh -v -i /root/.ssh/id_dsa.pub backup@webserver.com

Той факт, що він запитує пароль, безумовно, є хорошим знаком, але я не хочу, щоб він вимагав цього або пароля (який з’являється згодом, якщо я натискаю "повернути" на парольну фразу)

Відповіді:


24

Це тому, що ваш приватний ключ зашифрований ...

Ви можете додати свій ключ до ssh-агента, використовуючи ssh-addабо вилучити парольну фразу (а разом з нею і шифрування) з ключа за допомогою наступної команди:

ssh-keygen -p -f /root/.ssh/id_dsa -N ''


EDIT

О, я щойно зрозумів, що ви намагаєтесь використовувати свій відкритий ключ для автентифікації ... Ви хочете використовувати приватний ключ там:

ssh -v -i /root/.ssh/id_dsa backup@webserver.com

І просто для переконання, вміст файлу id_dsa.pubнадходить ~backup/.ssh/authorized_keysна веб-сервер. Ви можете використовувати наступну команду, щоб зробити це автоматично

ssh-copy-id -i /root/.ssh/id_rsa.pub backup@webserver.com

все-таки отримати питання. Це спрацювало і надало мені "Ваша ідентифікація збережена за допомогою нової парольної фрази". але потім все-таки просить пройти пароль наступного разу, коли я спробую ввійти. Я не впевнений, що ще спробувати ...
— Ендрю Аткінсон

перевірити мою оновлену відповідь ... можливо, це допомагає ...
— andrekeller

дякую, здається, я, можливо, намагався порівняти відкритий ключ із відкритим ключем ... Мені не потрібно було видаляти парольну фразу
— Ендрю Аткінсон

Факт, що я використовував свій паб для автентифікації (дурна помилка), був проблемою. Спасибі!
— Qix

6

Це сталося зі мною, коли приватний ключ у мене був не у форматі OpenSSH.

Я спочатку створив свій ключ на Windows за допомогою PuttyGen, і я отримав відхилення від цієї ж речі.

Мені вдалося це виправити, завантаживши ключ у PuttyGen і натиснувши "Конверсії", щоб перейти до формату OpenSSH.


2

Є кілька речей.

Перш за все, якщо KEY запитує пароль, ключ був згенерований за допомогою нього. По-друге, якщо система вимагає ввести пароль після, ключ не буде автентифікувати. Це означає, що вам потрібно буде відновити ключ SSH (або змінити його, як запропонував @rbtux) та виправити файли санкціонованих_ ключів.

ssh-keygen -t {dsa | rsa} -b {1024 | 2048 | 4096} -C "необов'язковий коментар" -f id_examplekey

Елементи у фігурних дужках - це параметри, тип та розмір бітів (Для очевидного: dsa> rsa, 4096> 1024 - з точки зору "безпеки").

Тоді вам потрібно додати відкритий ключ (.pub) до файлів authorized_keysта authorized_keys2файлів (загальноприйняте неправильне уявлення про те, що .pub призначений для місцевого використання, однак з ним порівнюється). Отже, у .sshпапці сервера .

$ cat id_examplekey.pub >> санкціоновані_літки {, 2}

Потім, переконайтеся, що ключові дозволи є, chmod 600 id_exampleі щоб полегшити введення всього цього, ви можете налаштувати файл конфігурації: ~/.ssh/configу вашому локальному вікні (це скелет, ви можете налаштувати цю тону):

Host example.com
    User WHATEVERNAME
    IdentityFile ~/.ssh/id_examplekey

але розділ налагодження, який читає: debug1: Сервер приймає ключ: pkalg ssh-dss blen 433, це не означає, що ключ прийнято? Я знову відтворив без парольної фрази, як і раніше? - Мені немає ідеї? Дякую
— Ендрю Аткінсон

@AndrewAtkinson Схоже, ви отримали його нижче. Вам потрібен приватний ключ з машини (локальний, клієнт, будь-який інший) та ключ public.pub, доданий до файлів дозволених ключів. Інші мої пропозиції повинні допомогти вам заощадити час: D Удачі!
— nerdwaller

Ви пишете , « В першу чергу, якщо KEY запитує пароль, ключ був згенерований за ним.» <- так , хоча я просто перевіряв , що запитувач зробив, тому, роблячи -i з відкритим ключем $ ssh user@comp -i ~/.ssh/id_rsa.pubі сказав неправильні дозволу і приватні ключ буде ігноруватися .. тому я змінив дозволи на 600, як id_rsa, і він попросив пройти фразу. Тож справді він запитає прохідну фразу, якщо ви вкажете відкритий ключ, навіть якщо і відкритий, і приватний ключ не були згенеровані парольною фразою
— barlop

2

Для мене, оскільки ключ був зашифрований, я дотримувався наступних кроків:

  • Запустити ssh-агент: $ ssh-agent bash
  • Додайте стандартний ідентифікаційний ключ до менеджера ключів: $ ssh-add
  • Якщо ви хочете додати інший ключ, тоді: $ ssh-add /location/of/key

Щоб перевірити будь-який час, список завантажених зараз ключів:

$ ssh-add -l

Детальніше можна отримати за цим посиланням


1

спробуйте https://wiki.gentoo.org/wiki/Keychain

Це свого роду обгортання на ssh-agentіssh-add

Плюси: Не потрібно вводити пароль повторно, доки ви не перезавантажуєтесь. Може використовуватися в crontab.

Можливо, це допоможе.


1

Це може бути тому, що ви використовуєте порту DSA, яка за умовчанням відключена у OpenSSH v7.

Якщо ви не можете змінити пару ключів, можливим вирішенням буде сказати своєму демону SSH на веб-сервері.com прийняти ці ключові типи, оновивши /etc/ssh/sshd_configабо еквівалент додаючи наступний рядок

PubkeyAcceptedKeyTypes=+ssh-dss

А потім перезапуск служби

/etc/init.d/ssh restart                     # or equivalent

0

На Mac OSX ви можете додати свій приватний ключ до брелка за допомогою команди:

ssh-add -K /path/to/private_key

Якщо ваш приватний ключ зберігається в ~ / .ssh і називається id_rsa:

ssh-add -K ~/.ssh/id_rsa

Потім вам буде запропоновано ввести пароль, який буде зберігатися у вашому брелоку.


Що мені потрібно зробити для клієнта Linux, якщо клієнт Mac працює?
— bbaassssiiee
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.