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


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.