ไม่สามารถปลดล็อคคีย์ SSH ที่ป้องกันด้วยรหัสผ่านใน OS X Mavericks


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-keys ของฉันตามที่อธิบายไว้ในบทความนี้เพื่อเพิ่มความปลอดภัยและทำงานได้ดีขึ้น Lion Mountain http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html

ฉันคิดว่า Apple เปลี่ยนบางสิ่งด้วย openssh และรุ่น "ใหม่" ไม่สามารถอ่านรูปแบบ PKCS # 8 ที่ใหม่กว่าได้

เวอร์ชั่น Mavericks ของฉัน OpenSSH: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

ฉันไม่มี Mac เครื่องอื่นดังนั้นฉันจึงไม่สามารถเปรียบเทียบกับรุ่น Mountain Lion ได้


/usr/bin/ssh -Vพิมพ์OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011บน VM 10.8.0 ของฉัน
Lri

หากคุณมีเวลาคุณสามารถตรวจสอบว่า "ssh-keygen -vvv -y -f id_rsa" แสดงอะไรถ้าคุณใช้คีย์ pkcs # 8?
tripplet

คีย์ pkcs # 8 ของฉันซึ่งมาจากลิงก์เดียวกันนั้นแสดงสิ่งนี้: gist.github.com/cbowns/7359383/raw/…
cbowns

2

การใช้ brew openssl และ openssh แก้ไขปัญหา PCKS # 8 บน 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

ฉันไม่แน่ใจว่ากำลังเชื่อมโยง openssl จะทำลายทุกอย่างใน Mavricks หรือไม่ จนถึงตอนนี้ฉันยังไม่พบปัญหาใด ๆ


0

ฉันสามารถแก้ไขปัญหานี้ได้โดยทำสิ่งต่อไปนี้:

cd ~/.ssh
mv known_hosts known_hosts.old

ตอนนี้ไปและเชื่อมต่อ เมื่อถามคำถามมาตรฐานเพื่อเพิ่มประเภทลายนิ้วมือใช่


แต่อย่าลืมตรวจสอบลายนิ้วมือด้วย!
zigg

1
นี่เป็นปัญหาที่แตกต่างจากที่ฉันถาม ไฟล์โฮสต์ที่รู้จักนั้นไม่มีส่วนเกี่ยวข้องกับปัญหาที่พบที่นี่ (การถอดรหัสของคีย์ส่วนตัว)
GaretJax

0

เกิดขึ้นเพื่อรับปัญหานี้ ด้วยการพยายามระบุตัวเลขฉันก็สามารถทำให้มันทำงานได้ดี

บน Linux เมื่อคุณพยายามสร้างคู่คีย์ให้ใช้สิ่งนี้:

ssh-keygen -t rsa -Z aes256

รหัสสาธารณะในขณะนี้ที่มีรหัสศูนย์ aes256 สามารถจดจำได้อย่างถูกต้องโดย ssh บน OSX (ที่นี่ฉันเป็น 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.