Không thể mở khóa mật khẩu được bảo vệ bằng khóa SSH trong OS X Mavericks


18

Tôi vừa nâng cấp lên OSX 10.9 và khi cố gắng thiết lập kết nối SSH với xác thực khóa chung, một lời nhắc xuất hiện hỏi mật khẩu khóa SSH của tôi.

Ban đầu tôi nghĩ rằng việc nâng cấp khiến móc khóa quên một số mật khẩu, vì vậy tôi đã nhập lại. Rõ ràng, đó không phải là nguyên nhân, bởi vì dấu nhắc liên tục xuất hiện trở lại.

Tôi đầu tiên mặc dù tôi có thể đang sử dụng mật khẩu sai, nhưng trong khi lệnh sau:

$ 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

...không hoạt động! Nếu tôi cố gắng sử dụng openssl:

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

Khóa riêng của tôi được giải mã chính xác và tất cả thông tin được in.

Điều gì đã xảy ra với việc nâng cấp lên Mavericks? Làm cách nào tôi có thể lấy lại khóa riêng của mình trong trạng thái có thể sử dụng được?

Câu trả lời:


22

Rõ ràng, khóa riêng tôi đang sử dụng trên máy của tôi là một cái cũ. Khóa của tôi không chứa thông tin mã hóa được thêm vào tệp khóa riêng nếu tôi tạo một khóa mới:

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

Để giải quyết vấn đề, tôi đã giải mã khóa bằng openssl:

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

... và sau đó mã hóa lại nó:

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

Và chỉ trong trường hợp, cũng tạo lại khóa công khai:

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

3

Tôi đã từng gặp vấn đề tương tự. Tôi đã giải quyết nó bằng cách di chuyển .ssh / ủy quyền_keys2 sang .ssh / ủy quyền.

Tệp / etc / sshd_config chứa các dòng này:

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

Đây là một sự thay đổi từ phiên bản macosx trước?


1
Vấn đề này là một vấn đề khác nhau là tốt. Trong trường hợp của tôi, tôi không thể giải mã khóa riêng của mình .
GaretJax

2

Vấn đề tương tự ở đây, chìa khóa của tôi cho thấy hành vi tương tự.

Tôi đã theo dõi vấn đề trở lại bài viết blog này. Tôi đã sửa đổi các phím ssh của mình theo cách nó được mô tả trong tài liệu này để tăng tính bảo mật và nó hoạt động tốt với Mountain Lion. http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html

Tôi cho rằng Apple đã thay đổi một số thứ với openssh và phiên bản "mới" không có khả năng đọc định dạng PKCS # 8 mới hơn.

Phiên bản OpenSSH của Mavericks của tôi: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

Tôi không có máy Mac nào khác nên tôi không thể so sánh nó với phiên bản Mountain Lion.


/usr/bin/ssh -Vin OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011trên VM 10.8.0 của tôi.
Lri

Xen kẽ, nếu bạn có thời gian, bạn có thể kiểm tra xem "ssh-keygen -vvv -y -f id_rsa" hiển thị gì nếu bạn sử dụng phím pkcs # 8 không?
tripplet

Khóa pkcs # 8 của tôi, xuất phát qua cùng một liên kết đó, hiển thị điều này: gist.github.com/cbowns/7359383/raw/ Kẻ
cbowns

2

Sử dụng brew openssl và openssh khắc phục sự cố PCKS # 8 trên 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

Tôi không chắc chắn nếu lực liên kết openssl phá vỡ bất cứ điều gì trên Mavricks. Cho đến nay, tôi đã không nhận thấy bất kỳ vấn đề.


0

Tôi đã có thể khắc phục vấn đề này bằng cách thực hiện như sau:

cd ~/.ssh
mv known_hosts known_hosts.old

Bây giờ đi và kết nối. Khi nó hỏi câu hỏi tiêu chuẩn để thêm loại dấu vân tay có.


Nhưng đừng quên kiểm tra dấu vân tay!
zigg

1
Đây là một vấn đề khác với những gì tôi đã hỏi. Tệp máy chủ đã biết không liên quan gì đến sự cố gặp phải ở đây (giải mã khóa riêng)
GaretJax

0

Đã xảy ra để có được vấn đề này. Bằng cách cố gắng chỉ định mật mã, tôi đã có thể làm cho nó hoạt động tốt.

Trên Linux, khi bạn cố gắng tạo các cặp khóa, hãy sử dụng:

ssh-keygen -t rsa -Z aes256

Khóa công khai bây giờ với mật mã aes256 có thể được nhận dạng chính xác bởi ssh trên OSX (ở đây, của tôi là 10.12.1).


0

Bạn có thể chuyển đổi khóa PuTTY thành khóa OpenSSL OS X:

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

Nhập cụm mật khẩu và bạn đã hoàn tất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.