如何验证/检查/测试/验证我的SSH密码?

时间:2010-12-10 17:13:56

标签: ssh ssh-keys openssh

我可能忘记了SSH密码的密码。试。

但我有预感它可能是什么。我如何检查我是否正确?

5 个答案:

答案 0 :(得分:446)

  

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

答案 1 :(得分:100)

您可以尝试将其加载到SSH代理中来验证SSH密钥密码。使用OpenSSH,可以通过ssh-add完成。

完成后,请记得通过运行ssh-add -d

从终端卸载SSH密码

答案 2 :(得分:1)

将@ RobBednark的解决方案扩展到特定的Windows + PuTTY场景,您可以这样做:

  1. 使用PuTTYgen生成SSH密钥对(在 Manually generating your SSH key in Windows 之后),将其保存到PPK文件中;

  2. 使用Windows资源管理器中的上下文菜单,选择“使用PuTTYgen编辑”。它会提示输入密码。

  3. 如果您输入了错误的密码,它只会再次提示。

    注意,如果要键入,请对包含PPK文件的文件夹使用以下命令:puttygen private-key.ppk -y

答案 3 :(得分:0)

使用“ ssh-keygen -p”。您可以添加“ -f”

它将提示您输入旧密码。如果密码正确,它将提示输入新密码。如果旧密码不正确,您将得到“无法加载密钥<...>”。

答案 4 :(得分:-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是私钥。