Я, наверное, забыл пароль для моего SSH-ключа. Опять же.
Но я догадываюсь, что это может быть. Как проверить, прав ли я?
Я, наверное, забыл пароль для моего SSH-ключа. Опять же.
Но я догадываюсь, что это может быть. Как проверить, прав ли я?
Вы можете проверить свою ключевую фразу SSH-ключа, попытавшись загрузить ее в ваш агент SSH. С OpenSSH это делается через ssh-add
.
Когда вы закончите, не забудьте выгрузить вашу парольную фразу SSH из терминала, запустив ssh-add -d
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
Расширяя решение @RobBednark для конкретного сценария Windows + PuTTY, вы можете сделать это:
Сгенерируйте пару ключей SSH с помощью PuTTYgen (после создания ключа SSH вручную в Windows), сохранив его в файл PPK;
В контекстном меню в проводнике Windows выберите "Редактировать с помощью PuTTYgen". Это запросит пароль.
Если вы введете неправильный пароль, он просто запросит снова.
Обратите внимание, что если вы хотите печатать, используйте следующую команду в папке, содержащей файл PPK: puttygen private-key.ppk -y
.
Если ваша парольная фраза предназначена для разблокировки вашего ключа 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
- это закрытый ключ.