ทุกครั้งที่ฉันเข้าสู่เซิร์ฟเวอร์ระยะไกลที่มี SSH พวงกุญแจ OS X จะแจ้งให้ฉันจำวลีรหัสผ่าน SSH ฉันพิมพ์ข้อความรหัสผ่านและทำเครื่องหมายที่ช่องเพื่อจดจำ ฉันเชื่อมต่อตกลงกับเซิร์ฟเวอร์ แต่แล้วครั้งต่อไปที่ฉันได้รับแจ้งอีกครั้งและต่อไป ...
ฉันมีรหัสส่วนตัวเพื่อ ssh ลงในเซิร์ฟเวอร์ของฉันและการเชื่อมต่อใช้งานได้ ในไฟล์โฮสต์ของฉันฉันมี:
Host myhost
HostName xxx.xxx.xxx.xx
GlobalKnownHostsFile ~/.ssh/known_hosts
port 22
User myuser
IdentityFile ~/.ssh/mykey_dsa
IdentitiesOnly yes
.. แล้วฉันพิมพ์ ssh myhost
นี่เป็นเพียงปัญหาล่าสุดดังนั้นฉันสงสัยและมีปัญหากับ Keychain หรือไม่ เพื่อความชัดเจนฉันสามารถ 'เพิ่ม' อีกครั้งเพื่อใส่พวงกุญแจทุกครั้งและเชื่อมต่อได้ สิทธิ์ในคีย์ dsa ของฉันตั้งไว้ที่ 600 หรือ-rw-------@
ฉันพยายามซ่อมแซมสิทธิ์ดิสก์ แต่ไม่ดี Google-foo ของฉันก็ทำให้ฉันล้มเหลวเช่นกันไม่มีประโยชน์อะไรเกิดขึ้น ดังนั้นฉันไม่แน่ใจว่านี่เป็นปัญหา OS X / keychain หรือปัญหา SSH
ปรับปรุง: เมื่อฉันลอง ssh -vvv myhost ฉันคิดว่ามันเผยให้เห็นปัญหา:
debug1: Trying private key: /Users/danny/.ssh/mykey_dsa
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug3: Not a RSA1 key file /Users/danny/.ssh/mykey_dsa.
debug1: read PEM private key done: type DSA
Identity added: /Users/danny/.ssh/mykey_dsa (/Users/danny/.ssh/mykey_dsa)
debug1: read PEM private key done: type DSA
debug3: sign_and_send_pubkey
debug2: we sent a publickey packet, wait for reply
debug1: Authentication succeeded (publickey).
... และหลังจากนั้นฉันก็เชื่อมต่อ ฉันคิดว่าประเด็นนี้คือ:
PEM_read_PrivateKey failed
อัปเดต 2: หลังจากลองใช้คีย์และการตั้งค่าเดียวกันบน Mac เครื่องอื่นที่มี 10.6.8 ทุกอย่างทำงานได้ดีดังนั้นฉันคิดว่านี่เป็นคำถามเฉพาะของ Mac ซึ่งอาจเป็นปัญหาเกี่ยวกับสิทธิ์ในการอนุญาต
อัปเดต 3 ฉันลองติดตั้ง Mountain Lion (10.8.1) ใหม่อีกครั้งและก็เป็นปัญหาเดียวกันกับที่ฉันไม่ได้รับเลย
อาจเกี่ยวข้องกับ: https://discussions.apple.com/thread/3518441?start=0&tstart=0
อัปเดต 4 นี่คือคำตอบ
PEM_read_PrivateKey failed
แต่ฉันไม่รู้ว่าทำไมฉันสร้างคีย์นี้เหมือนกับคนอื่น ๆ ทั้งหมดของฉันซึ่งได้รับการเพิ่มลงในพวงกุญแจและอยู่ในนั้น
ssh-add -K
แก้ไขให้ฉัน
ssh -v[v] myserver
รับข้อมูลโดยละเอียดเกี่ยวกับข้อผิดพลาด