Tidak dapat membuka kunci kunci SSH yang dilindungi kata sandi di OS X Mavericks


18

Saya baru saja memutakhirkan ke OSX 10.9, dan ketika mencoba membuat koneksi SSH dengan otentikasi kunci publik, sebuah prompt muncul meminta kata sandi kunci SSH saya.

Saya awalnya berpikir bahwa upgrade menyebabkan gantungan kunci lupa beberapa kata sandi, jadi saya memasukkan kembali milik saya. Rupanya, itu bukan penyebabnya, karena prompt terus muncul kembali.

Saya pertama kali berpikir bahwa saya mungkin menggunakan kata sandi yang salah, tetapi sementara perintah berikut:

$ 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

...tidak bekerja! Jika saya mencoba menggunakan openssl:

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

kunci pribadi saya didekripsi dengan benar dan semua informasi dicetak.

Apa yang terjadi dengan peningkatan ke Mavericks? Bagaimana saya bisa mendapatkan kunci pribadi saya kembali dalam keadaan dapat digunakan?

Jawaban:


22

Rupanya, kunci pribadi yang saya gunakan pada mesin saya adalah yang lama. Kunci saya tidak mengandung informasi enkripsi yang ditambahkan ke file kunci pribadi jika saya membuat yang baru:

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

Untuk memecahkan masalah, saya mendekripsi kunci dengan openssl:

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

... dan kemudian mengenkripsi ulang:

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

Dan untuk berjaga-jaga, regenerasi kunci publik juga:

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

3

Saya memiliki masalah yang sama. Saya menyelesaikannya dengan memindahkan .ssh / authorized_keys2 ke .ssh /otorized_keys

File / etc / sshd_config secara eksplisit berisi baris-baris ini:

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

Ini adalah perubahan dari versi macosx sebelumnya?


1
Masalah ini juga berbeda. Dalam kasus saya, saya tidak dapat mendekripsi kunci pribadi saya .
GaretJax

2

Masalah yang sama di sini, kunci saya menunjukkan perilaku yang sama.

Saya melacak masalahnya kembali ke posting blog ini. Saya memodifikasi kunci ssh saya seperti yang dijelaskan dalam artikel ini untuk meningkatkan keamanan dan berhasil di Mountain Lion. http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html

Saya berasumsi bahwa Apple mengubah sesuatu dengan openssh dan versi "baru" tidak mampu membaca format PKCS # 8 yang lebih baru.

Versi OpenSSH Mavericks Saya: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

Saya tidak punya Mac lain jadi saya tidak bisa membandingkannya dengan versi Mountain Lion.


/usr/bin/ssh -Vmencetak OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011pada VM 10.8.0 saya.
Lri

Interessting, Jika Anda punya waktu, dapatkah Anda memeriksa apa yang ditampilkan "ssh-keygen -vvv -y -f id_rsa" jika Anda menggunakan kunci pkcs # 8?
tripplet

Kunci pkcs # 8 saya, diturunkan melalui tautan yang sama, menunjukkan ini: gist.github.com/cbowns/7359383/raw/…
cbowns

2

Menggunakan brew openssl dan openssh memperbaiki masalah PCKS # 8 di Mavericks.

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

Saya tidak yakin apakah memaksa menghubungkan openssl merusak apa pun di Mavricks. Sejauh ini, saya belum melihat adanya masalah.


0

Saya dapat memperbaiki masalah ini dengan hanya melakukan hal berikut:

cd ~/.ssh
mv known_hosts known_hosts.old

Sekarang pergi dan terhubung. Ketika itu menanyakan pertanyaan standar untuk menambahkan jenis sidik jari ya.


Tapi jangan lupa untuk memeriksa sidik jari!
zigg

1
Ini adalah masalah yang berbeda dari apa yang saya tanyakan. File host yang dikenal tidak ada hubungannya dengan masalah yang ditemukan di sini (mendekripsi kunci privat)
GaretJax

0

Terjadi untuk mendapatkan masalah ini. Dengan mencoba menentukan sandi, saya bisa membuatnya bekerja dengan baik.

Di Linux, ketika Anda mencoba membuat pasangan kunci, gunakan ini:

ssh-keygen -t rsa -Z aes256

Kunci publik sekarang dengan cipher aes256 dapat dikenali dengan benar oleh ssh pada OSX (di sini, milik saya 10.12.1).


0

Anda dapat mengonversi kunci Putty ke kunci OpenSSL OS X:

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

Ketikkan frasa sandi dan Anda selesai.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.