OS X Mavericks'te parola korumalı SSH anahtarının kilidi açılamıyor


18

Sadece OSX 10.9'a geçtim ve ortak anahtar kimlik doğrulaması ile bir SSH bağlantısı kurmaya çalışırken, SSH anahtar şifremi soran bir komut istemi beliriyor.

Başlangıçta yükseltme işleminin anahtarlığın bazı şifreleri unutmasına neden olduğunu düşündüm, bu yüzden benimkine tekrar girdim. Görünüşe göre, bu sebep değildi, çünkü istem tekrar görünmeye devam etti.

İlk önce yanlış şifreyi kullanıyor olabilirim, ancak aşağıdaki komutu kullanırken:

$ 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

...çalışmıyor! Openssl kullanmaya çalışırsam:

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

özel anahtarımın şifresi çözüldü ve tüm bilgiler yazdırıldı.

Mavericks'e geçişte ne oldu? Özel anahtarımı kullanılabilir bir duruma nasıl geri alabilirim?

Yanıtlar:


22

Görünüşe göre, makinemde kullandığım özel anahtar eskiydi. Yeni bir tane oluşturursam anahtarım özel anahtar dosyasına eklenen şifreleme bilgilerini içermiyordu:

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

Sorunu çözmek için anahtarı openssl ile çözdüm:

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

... ve ardından yeniden şifreledi:

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

Her ihtimale karşı, ortak anahtarı da yeniden oluşturun:

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

3

Ben de aynı problemi yaşadım. Bunu .ssh / yetkili_anahtarlar2'yi .ssh / yetkili_anahtarlara taşıyarak çözdüm.

/ Etc / sshd_config dosyası şu satırları açıkça içerir:

\# 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

Bu önceki macosx sürümünden bir değişiklik mi?


1
Bu sorun da farklı. Benim durumumda ben şifresini mümkün değildi benim özel anahtarı.
GaretJax

2

Burada da aynı sorun, anahtarlarım aynı davranışı gösteriyor.

Sorunu bu blog gönderisine kadar izledim. SSH anahtarlarımı güvenliği artırmak için bu sanatta tarif edildiği gibi değiştirdim ve Mountain Lion'da çalıştı. http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html

Apple'ın openssh ile bir şey değiştirdiğini ve "yeni" sürümün yeni PKCS # 8 biçimini okuyamayacağını varsayıyorum.

Mavericks OpenSSH Sürümüm: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

Başka Mac'im yok, bu yüzden Mountain Lion sürümüyle karşılaştıramıyorum.


/usr/bin/ssh -VOpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 201110.8.0 VM'ye yazdırıyor .
Lri

Eğer bir pkcs # 8 anahtarı kullanırsanız, zamanınız varsa "ssh-keygen -vvv -y -f id_rsa" ifadesinin ne olduğunu kontrol edebilirsiniz.
tripplet

Aynı bağlantı üzerinden türetilen pkcs # 8 anahtarım bunu gösteriyor: gist.github.com/cbowns/7359383/raw/…
cbowns

2

Demlemek openssl ve openssh kullanmak Mavericks PCKS # 8 sorununu giderir.

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

Zorla bağlamanın açılmayacağından emin değilim Mavricks'te bir şey kırar. Şimdiye kadar herhangi bir sorun fark etmedim.


0

Bu sorunu basitçe aşağıdakileri yaparak çözebildim:

cd ~/.ssh
mv known_hosts known_hosts.old

Şimdi gidin ve bağlanın. Standart soru sorduğunda, parmak izi türünü eklemek evet.


Ancak parmak izini kontrol etmeyi unutmayın!
zigg

1
Bu benim sorduğumdan farklı bir problem. Bilinen hosts dosyasının burada karşılaşılan sorunla bir ilgisi yoktur (özel anahtarın şifresini çözme)
GaretJax

0

Bu sorunu elde etti. Şifreyi belirtmeye çalışarak iyi çalışmasını sağlayabildim.

Linux'ta, anahtar çiftleri oluşturmaya çalıştığınızda şunu kullanın:

ssh-keygen -t rsa -Z aes256

Şimdi şifre aes256 ile ortak anahtar OSX'de ssh tarafından doğru bir şekilde tanınabilir (burada benimki 10.12.1).


0

PuTTY anahtarını OpenSSL OS X anahtarına dönüştürebilirsiniz:

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

Parolayı yazın ve işiniz bitti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.