如何validation/检查/testing/validation我的SSH密码?

我可能忘记了我的SSH密码的密码。 再次。

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

您可以通过尝试将其加载到SSH代理中来validation您的SSH密钥密码。 通过OpenSSH,这是通过ssh-add

ssh-keygen -y

ssh-keygen -y会提示你input密码(如果有的话)。

如果input正确的密码,它将显示相关的公钥。
如果input的密码错误 ,将显示load failed
如果密钥没有密码,则不会提示您input密码,并会立即显示相关的公钥。

例如,

创build一个新的公钥/私钥对,使用或不使用密码:

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

现在看看你是否可以访问密钥对:

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

以下是一个扩展示例,显示输出。

创build一个新的公钥/私钥对,使用或不使用密码:

 $ 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 . | | + = + * | | = oo . | | . . | | E | +-----------------+ 

尝试通过input正确的密码来访问密钥对。 请注意,公钥将显示,退出状态( $? )将为0表示成功:

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

尝试通过input不正确的密码来访问密钥对。 请注意,显示“加载失败”错误消息(根据操作系统的不同,消息可能会有所不同),并且退出状态( $? )将为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 

如果你的口令是解锁你的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是私钥