OS X Mavericksでパスワードで保護されたSSHキーをロック解除できない


18

OSX 10.9にアップグレードしたばかりで、公開キー認証を使用してSSH接続を確立しようとすると、SSHキーのパスワードを求めるプロンプトが表示されます。

私は当初、アップグレードによってキーチェーンがいくつかのパスワードを忘れるのではないかと思ったので、私は自分のものを再入力しました。プロンプトが繰り返し表示されるため、どうやらそれが原因ではなかったようです。

私は最初に間違ったパスワードを使用しているかもしれませんが、次のコマンドを実行しています:

$ ssh-keygen -vvv -y -f id_rsa >| id_rsa.pub
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase:
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
load failed

...動作しません!opensslを使用しようとすると:

$ openssl rsa -in id_rsa -text
Enter pass phrase for id_rsa:
Private-Key: (2048 bit)
modulus:
    00:...

私の秘密鍵は正しく解読され、すべての情報が印刷されます。

Mavericksへのアップグレードで何が起こったのですか?秘密鍵を使用可能な状態に戻すにはどうすればよいですか?

回答:


22

どうやら、私のマシンで使用していた秘密鍵は古いものでした。新しいキーを生成した場合、秘密キーファイルに追加された暗号化情報が私のキーに含まれていません。

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-...

問題を解決するために、opensslでキーを復号化しました。

$ cd ~/.ssh
$ cp id_rsa id_rsa.bck
$ openssl rsa -in id_rsa -out id_rsa

...そしてそれを再暗号化しました:

$ openssl rsa -in id_rsa -aes256 -out id_rsa
$ chmod 0600 id_rsa

念のため、公開鍵も再生成します。

$ ssh-keygen -y -f id_rsa > id_rsa.pub

3

同じ問題がありました。.ssh / authorized_keys2を.ssh / authorized_keysに移動して解決しました。

ファイル/ etc / sshd_configには、次の行が明示的に含まれています。

\# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
\# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

これは、以前のmacosxバージョンからの変更ですか?


1
この問題も別の問題です。私の場合秘密鍵を復号化できませんでした。
GaretJax

2

ここで同じ問題、私のキーは同じ動作を示しています。

このブログ投稿に戻って問題を追跡しました。セキュリティを強化するためにこの記事で説明されている方法でsshキーを変更し、Mountain Lionで機能しました。 http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html

Appleはopensshで何かを変更し、「新しい」バージョンは新しいPKCS#8形式を読み取ることができないと思います。

My Mavericks OpenSSHバージョン: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

他のMacがないので、Mountain Lionバージョンと比較することはできません。


/usr/bin/ssh -VOpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 201110.8.0 VMで印刷します。
Lri

興味があります。時間があれば、pkcs#8キーを使用した場合に「ssh-keygen -vvv -y -f id_rsa」が何を示すかを確認できますか?
トリプレット

同じリンク、番組本を介して誘導されて私のPKCS#8キー、:gist.github.com/cbowns/7359383/raw/...
cbowns

2

brew opensslとopensshを使用すると、MavericksのPCKS#8の問題が修正されます。

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

opensslを強制的にリンクしてもMavricksで何かが壊れるかどうかはわかりません。これまでのところ、私は問題に気づいていません。


0

次のことを行うだけで、この問題を解決できました。

cd ~/.ssh
mv known_hosts known_hosts.old

さあ、接続してください。指紋タイプを追加するために標準的な質問をする場合はい。


しかし、指紋を確認することを忘れないでください!
zigg

1
これは私が尋ねていたものとは異なる問題です。既知のホストファイルは、ここで発生した問題(秘密キーの復号化)とは関係ありません
-GaretJax

0

この問題が発生しました。暗号を指定することで、うまく機能させることができました。

Linuxでは、キーペアを生成しようとするときに、これを使用します。

ssh-keygen -t rsa -Z aes256

暗号aes256を含む公開鍵は、OSXのsshによって正しく認識されます(ここでは、私の10.12.1です)。


0

PuTTYキーをOpenSSL OS Xキーに変換できます。

puttygen putty.ppk -O private-openssh -o osx.key

パスフレーズを入力すれば完了です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.