パスワードなしのSSH秘密鍵のパスワードダイアログが表示されます。


3

私のSSH秘密鍵を〜/ .ssh / id_rsaにインストールしました。がある パスフレーズなし しかし、鍵に関連付けられていると、SSHサーバーに接続するたびにダイアログが表示され、id_rsaファイルにアクセスするためのパスワードを入力するように求められます。

ダイアログをキャンセルするか、空のパスフレーズを入力して[OK]をクリックすると、ターミナルからパスフレーズの入力を求められます。

他のマシンを介して同じキーに接続することで、キーが有効でパスワードが不要であることを確認しました。

私の特定の設定に関して奇妙なことが問題を引き起こしていますが、私はそれを理解することができません。私は現在OSX 10.7.1を実行していますが、同じ問題がOSX 10.6.8でも発生していました


認証ダイアログで「パスワードをキーチェーンに記憶する」を選択しましたか?
Chris Page

はい、覚えているチェックボックスを選択してみました。空白のパスワードを使用して[OK]をクリックし、ダイアログボックスをキャンセルすることも試しました。しかし、これらすべては要点のそばにあるようです。 ではない キーに関連付けられたパスフレーズがないため、パスフレーズの入力を求められます。これはパスワードなしの秘密鍵です。
JeremyT

ああ、なるほど。にバグレポートを提出してください。 developer.apple.com/bugreporter これがあなたにとって問題であることをAppleが認識していることを確認するため。
Chris Page

私の場合は、 持っていました 秘密鍵にパスフレーズを付けます。私がそれがまだキーチェーンの中にあることを忘れていたのは昔のことでした。ファイルを新しいマシンに移動したとき、なぜそれらが機能しなかったのか理解できませんでした。幸いなことに、私はまだメモにパスフレーズを書いていました。あー!
Hew Wolff

回答:


2

私はこれと同じ問題を抱えていました。ただし、がパスワードなしの新しい秘密鍵を生成した場合は、次のコマンドを使用します。

ssh-keygen -b 1024 -t rsa -f id_rsa -P ""

パスワードプロンプトが表示されなくなりました。

さらに、ssh-addは古いキーを追加できませんでしたが、期待どおりに新しいキーを追加しました。

私は2009年にLeopard上で古いキーを生成し、それまでに手に入れたバージョンのOpenSSLを使ってビルドし、インストールしました(そのMacは死んだので、ログインして実行中のものを確認できません)。その鍵に関する何かがLionのネイティブSSLライブラリと互換性がありませんでした。

私は私の古い鍵をバックアップしました、それで誰かがいくつかのチェックを提案したいなら、鍵の特定の特性を識別するために、何をチェックしたらよいか私に報告します。

もう1つの手がかり - 私の古いid_rsa.pubファイルには拡張属性があることに気付きました。つまり、パーミッションフラグはr -------- @ではなくr -------- @のようになっていました。

xattr -l id_rsa.pub.old

戻ってきた:

com.macromates.caret: {
    column = 0;
    line = 1;
}

TextMateから残された残骸。キーを交換しなくても問題を解決できたかどうかはわかりません。それはありそうにないと思います。

あなた(将来の読者)が同じことを見ている場合は、次のように拡張属性を削除することができます。

 xattr -d com.macromates.caret id_rsa.pub.old

最初にTextMateを終了してから次のコマンドを発行することで、TextMateがそれらを追加しないようにすることができます。

defaults write com.macromates.textmate OakDocumentDisableFSMetaData 1

私のオリジナルファイルは拡張プロパティを持っていませんでしたが、それはWindows上のputty-keygenによって生成されました。パスフレーズなしで新しい秘密鍵と公開鍵のペアを再作成したとき、それは魅力のように機能しました。
cori

1

私にとって、私は、このプロンプトを引き起こす可能性がある、テキストの曖昧なテキストやキーファイルの不完全さがあることを発見しました。私にとって最新のものはこれでした:

-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----

余分なスペースがあります。そのため、このパスワードのないキーにこの奇妙なパスワードプロンプトが表示されていました。


0

の古いバージョン ssh ユーティリティは、キーファイルを解釈できないときはいつでもパスフレーズを要求します。 sshがキーファイルのパスフレーズを要求しても、それがあるとは思われない場合は、キーファイルが何らかの形で破損している可能性があります。

$ dd if=/dev/urandom of=randokey bs=1024 count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.000380502 s, 2.7 MB/s
$ chmod 600 randokey
$ ssh -i randokey localhost
Enter passphrase for key 'randokey':

OpenSSHのメンテナは、ある時点でこの振る舞いを改善しました。のバージョン ssh macOS High Sierraは暗号化されたキーと破損したキーの違いを知っています。

$ ssh -i randokey localhost
Load key "randokey": invalid format
Password: ^C

$ ssh -V
OpenSSH_7.6p1, LibreSSL 2.6.2
$ uname -a
Darwin [hostname] 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.