SSHパスフレーズを確認/チェック/テスト/検証するにはどうすればよいですか?


297

SSH鍵のパスフレーズを忘れてしまったようですが、それがどういうものなのか、私には直感がありません。私が正しいかどうかを確認するにはどうすればよいですか?


5
これはpassphraseパスワードなしです;)
Timo

回答:


123

SSHキーパスフレーズをSSHエージェントにロードしてみることで確認できます。OpenSSHこれは介して行われますssh-add

完了したら、を実行してSSHパスフレーズをターミナルからアンロードすることを忘れないでくださいssh-add -d


13
チェックが完了したら、SSHエージェントからSSHキーのパスフレーズをアンロードしますssh-add -d
Kache

1
ssh-addにはマシンの管理者権限が必要だと思います。「認証エージェントへの接続を開けませんでした。」というエラーが表示されます。
IgorGanapolsky 2014

@IgorGanapolsky:いいえ、実行中の認証エージェントが必要です。起動スクリプトまたはオプションを変更して、起動します。
Ignacio Vazquez-Abrams

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

誤ったパスフレーズを入力して、キーペアにアクセスしてみてください。「読み込み失敗」エラーメッセージが表示され(メッセージはOSによって異なる場合があります)、終了ステータス($?)は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
パスワードがない場合は、関連する公開鍵を出力するだけです。
キレマン2016年

1
@Kyrremannに感謝!これを反映するように答えを更新しました。
Rob Bednark、2016年

ssh-keygen -yキーファイルを要求し、期待どおりにReturnをクリックするとデフォルトが表示されます。
ティモ

私はssh-keygen -ysshキーのパスフレーズを確認するために使用しました。私のUbuntuが信じられないほど遅くなることを除いて、それはうまくいきました。CPU使用率が100%の場合、ほとんどのプログラムは1分以上で起動しました。ラップトップを再起動した後、デスクトップが表示されるまで数分かかったため、ほとんどログインできませんでした。最後に、Ask Ubuntuでこの問題を見つけました。私はgnome-keyring-daemon問題を解決するために始めなければなりませんでした。
AdamFónagy18年

2

@RobBednarkのソリューションを特定のWindows + PuTTYシナリオに拡張すると、次のようになります。

  1. PuTTYgenを使用してSSHキーペアを生成し(Windowsで手動で SSHキーを生成した後)、それをPPKファイルに保存します。

  2. Windowsエクスプローラーのコンテキストメニューで、[PuTTYgenで編集]を選択します。パスワードの入力を求められます。

間違ったパスワードを入力すると、もう一度プロンプトが表示されます。

入力する場合は、PPKファイルが含まれているフォルダーで次のコマンドを使用してください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
これを行うパスフレーズは要求されません
Imme22009

私にとっては、プライベートid_rsaをssh localhostにロック解除することです
Alexx Roche

私はエラーを取得:「SSH:ホストlocalhostのポート22への接続:不正なファイル番号」
IgorGanapolsky
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.