Как проверить/проверить/проверить/подтвердить мой пароль SSH?

Я, наверное, забыл пароль для моего SSH-ключа. Опять же.

Но я догадываюсь, что это может быть. Как проверить, прав ли я?

Ответ 1

Вы можете проверить свою ключевую фразу SSH-ключа, попытавшись загрузить ее в ваш агент SSH. С OpenSSH это делается через ssh-add.

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

Ответ 2

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 [email protected]
The key 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

Попытайтесь получить доступ к паре ключей, введя неверную кодовую фразу. Обратите внимание, что сообщение об ошибке "load failed" будет отображаться (сообщение может отличаться в зависимости от ОС), а состояние выхода ($?) будет 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

Ответ 3

Расширяя решение @RobBednark для конкретного сценария Windows + PuTTY, вы можете сделать это:

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

  2. В контекстном меню в проводнике Windows выберите "Редактировать с помощью PuTTYgen". Это запросит пароль.

Если вы введете неправильный пароль, он просто запросит снова.

Обратите внимание, что если вы хотите печатать, используйте следующую команду в папке, содержащей файл PPK: puttygen private-key.ppk -y.

Ответ 4

Если ваша парольная фраза предназначена для разблокировки вашего ключа 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 - это закрытый ключ.