Як я можу перевірити / перевірити / перевірити / перевірити свою парольну фразу SSH?


297

Я думаю, я забув пароль для свого ключа SSH, але в мене є думка, що це може бути. Як перевірити, чи я правий?


5
Це а passphrase, без пароля;)
Тимо

Відповіді:


123

Ви можете перевірити свою парольну фразу ключа SSH, намагаючись завантажити її у свій агент SSH. З OpenSSH це робиться через ssh-add.

Як тільки ви закінчите, не забудьте розвантажити свою парольну фразу SSH з терміналу, запустівши ssh-add -d.


13
Після того, як ви закінчите перевірку, вивантажте свою парольну фразу ключа SSH від вашого агента SSH за допомогоюssh-add -d
Kache

1
ssh-add вимагає прав адміністратора на машині. Я отримую помилку: "Не вдалося відкрити з'єднання з вашим агентом аутентифікації."
ІгорГанапольський

@IgorGanapolsky: Ні, для цього потрібен запущений агент аутентифікації. Змініть свої сценарії запуску або параметри, щоб піднести його.
Ігнасіо Васкес-Абрамс

20
Відповідь Роб - правильна відповідь.
mgarciaisaia

Якщо ви випадково використовуєте selinux, ви також можете перевірити контекст домашнього каталогу та .ssh файлів! Мені пощастило, що я міг скористатися цим простим виправленням: # restorecon -R -v /home/userщоб перевірити, чи це проблема (хоча попередня команда не повинна викликати жодних проблем), ви можете використовувати $ ls -lZR <home_dir>для вивчення контексту. Якщо ви не бачите user_home_tв домашньому каталозі та ssh_home_tв .sshкаталозі та authorized_keysфайлі, використовуйте їх restoreconдля виправлення.
fbicknel

523

ssh-keygen -y

ssh-keygen -y підкаже вам про парольну фразу (якщо така є).

    Якщо ви введете правильну парольну фразу, вона покаже вам пов’язаний відкритий ключ.
    Якщо ви введете неправильну фразу, вона відобразиться load failed.
    Якщо ключ не має парольної фрази, він не запропонує вам ввести парольну фразу і негайно покаже вам пов’язаний відкритий ключ.

наприклад,

Створіть нову пару відкритих / приватних ключів, із паролем або без нього:

$ ssh-keygen -f /tmp/my_key
...

Тепер подивіться, чи можете ви отримати доступ до пари ключів:

$ ssh-keygen -y -f /tmp/my_key


Далі наводиться розширений приклад, що показує вихід.

Створіть нову пару відкритих / приватних ключів, із паролем або без нього:

$ ssh-keygen -f /tmp/my_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/my_key.
Your public key has been saved in /tmp/my_key.pub.
The key fingerprint is:
de:24:1b:64:06:43:ca:76:ba:81:e5:f2:59:3b:81:fe rob@Robs-MacBook-Pro.local
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

Спроба отримати доступ до пари ключів, ввівши правильну парольну фразу. Зауважте, що відкритий ключ буде показаний, а статус виходу ( $?) буде 0вказувати на успіх:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBJhVYDYxXOvcQw0iJTPY64anbwSyzI58hht6xCGJ2gzGUJDIsr1NDQsclka6s0J9TNhUEBBzKvh9nTAYibXwwhIqBwJ6UwWIfA3HY13WS161CUpuKv2A/PrfK0wLFBDBlwP6WjwJNfi4NwxA21GUS/Vcm/SuMwaFid9bM2Ap4wZIahx2fxyJhmHugGUFF9qYI4yRJchaVj7TxEmquCXgVf4RVWnOSs9/MTH8YvH+wHP4WmUzsDI+uaF1SpCyQ1DpazzPWAQPgZv9R8ihOrItLXC1W6TPJkt1CLr/YFpz6vapdola8cRw6g/jTYms00Yxf2hn0/o8ORpQ9qBpcAjJN
$ echo $?
0

Спроба отримати доступ до пари ключів, ввівши неправильну парольну фразу. Зауважте, що буде показано повідомлення про помилку "завантаження не вдалося" (повідомлення може відрізнятися залежно від ОС), а статус виходу ( $?) буде 1вказувати на помилку:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
load failed
$ echo $?
1

Спроба отримати доступ до пари ключів, яка не має парольної фрази. Зауважте, що немає пароля для парольної фрази, відкритий ключ буде показаний, а статус виходу ( $?) буде 0вказувати на успіх:

$ ssh-keygen -y -f /tmp/my_key_with_no_passphrase
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLinxx9T4HE6Brw2CvFacvFrYcOSoQUmwL4Cld4enpg8vEiN8DB2ygrhFtKVo0qMAiGWyqz9gXweXhdmAIsVXqhOJIQvD8FqddA/SMgqM++2M7GxgH68N+0V+ih7EUqf8Hb2PIeubhkQJQGzB3FjYkvRLZqE/oC1Q5nL4B1L1zDQYPSnQKneaRNG/NGIaoVwsy6gcCZeqKHywsXBOHLF4F5nf/JKqfS6ojStvzajf0eyQcUMDVhdxTN/hIfEN/HdYbOxHtwDoerv+9f6h2OUxZny1vRNivZxTa+9Qzcet4tkZWibgLmqRyFeTcWh+nOJn7K3puFB2kKoJ10q31Tq19
$ echo $?
0

2
Якщо пароля немає, він просто роздрукує пов'язаний відкритий ключ.
Кірреманн

1
Дякую @Kyrremann! Зараз я оновив відповідь, щоб це відобразити.
Роб Беднарк

ssh-keygen -yзапитує файл ключа та пропонує за замовчуванням при натисканні повернення, як можна було б очікувати.
Тимо

Я ssh-keygen -yперевіряв парольну фразу свого ключа ssh. Це добре працювало, за винятком того, що мій Ubuntu став неймовірно повільним. Більшість програм може запуститися за хвилину або більше, поки використання процесора становило 100%. Після перезавантаження свого ноутбука я міг увійти в систему навряд чи, як пройшло кілька хвилин, щоб побачити свій робочий стіл. Нарешті я знайшов цю проблему на Ask Ubuntu . Я повинен був почати gnome-keyring-daemonз вирішення проблеми.
Адам Фунагі

2

Розширивши рішення @ RobBednark на певний сценарій Windows + PuTTY, ви можете це зробити:

  1. Створіть пару ключів SSH з PuTTYgen (слідуючи вручну генеруючи ваш ключ SSH в Windows ), зберігаючи його у файлі PPK;

  2. У контекстному меню Windows Explorer виберіть «Правка за допомогою PuTTYgen». Він запропонує ввести пароль.

Якщо ви введете неправильний пароль, він просто підкаже знову.

Зверніть увагу, якщо ви хочете ввести, використовуйте наступну команду в папку, яка містить файл ППК: puttygen private-key.ppk -y.


0

Використовуйте "ssh-keygen -p". Ви можете додати "-f"

Він запропонує вам старий пароль. Якщо пароль правильний, він запропонує ввести новий пароль. Якщо старий пароль невірний, ви отримаєте "Помилка завантаження ключа <...>".


-1

Якщо ваш пароль для розблокування вашого ключа SSH, а у вас його немає ssh-agent, але на вашій машині встановлено sshd (демон SSH), зробіть:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;
ssh localhost -i ~/.ssh/id_rsa

Де ~/.ssh/id_rsa.pubвідкритий ключ, і ~/.ssh/id_rsaприватний ключ.


1
Це не просить пропустити фразу з цього
приводу

Це для мене, щоб розблокувати приватний id_rsa для ssh localhost
Alexx Roche

Я отримую помилку: "ssh: підключення до хосту localhost порт 22: Неправильний номер файлу"
IgorGanapolsky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.