SSH ขอรหัสผ่านบนกุญแจสาธารณะที่ไม่มีการตั้งค่าวลีรหัสผ่าน


27

ฉันได้รับการใช้การตรวจสอบคีย์สาธารณะบนเซิร์ฟเวอร์ของฉันในขณะนี้ แต่ฉันกำลังประสบปัญหาใน 'ลูกค้า' ใหม่พยายามที่จะเชื่อมต่อกับGitHub ฉันได้อ่านหลายเธรดเพื่อตรวจสอบว่าสิทธิ์ของฉันได้รับการตั้งค่าอย่างถูกต้องและได้สร้างคีย์ใหม่สำหรับ github ปัญหาที่ฉันเผชิญคือ ssh กำลังขอข้อความรหัสผ่านของฉันแม้ว่าฉันจะไม่ได้ตั้งข้อความรหัสผ่านก็ตาม ฉันได้ทำกุญแจใหม่เพื่อให้แน่ใจ 100% ว่าฉันไม่ได้ป้อนข้อความรหัสผ่าน

ssh -vvvให้เอาต์พุตที่เกี่ยวข้องดังต่อไปนี้:

debug1: Offering public key: /home/me/.ssh/github.pub
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Remote: Forced command: gerve mygithubusername c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug3: sign_and_send_pubkey
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/me/.ssh/github.pub': 

ฉันค้นหาเพื่อค้นหาว่าเหตุใดจึงบอกฉันว่าPEM_read_PrivateKeyล้มเหลว แต่ฉันไม่พบวิธีแก้ปัญหา

ฉันไม่ได้ใช้ตัวแทนหรืออะไร ฉันกำหนดค่าไฟล์ ~ / .ssh / config ของฉันคล้ายกับต่อไปนี้:

Host github
Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github.pub

ขอบคุณล่วงหน้า.


@ Jasonwryan โปรดย้ายความคิดเห็นของคุณไปยังคำตอบ ฉันค่อนข้างแน่ใจว่าคุณพูดถูก
andcoz

มันเป็นเรื่องเล็กน้อยและฉันเป็นคนโง่ที่ไม่สังเกตเห็นสิ่งนี้ก่อนหน้านี้ แต่หวังว่าคำตอบของคุณจะให้ความช่วยเหลือผู้อื่นในอนาคต
earthmeLon

คำตอบ:


26

เมื่อคุณใช้IdentityFileตัวเลือกในการที่~/.ssh/configคุณชี้ไปที่คีย์ส่วนตัวไม่สาธารณะ

จากman ssh_config:

IdentityFile
ระบุไฟล์ที่จะอ่านข้อมูลประจำตัวการพิสูจน์ตัวตน DSA, ECDSA หรือ DSA ของผู้ใช้ ค่าเริ่มต้นคือ ~ / .ssh / identity สำหรับโปรโตคอลรุ่น 1 และ ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa และ ~ / .ssh / id_rsa สำหรับรุ่นโปรโตคอล 2

ดังนั้น~/.ssh/configรายการของคุณควรมีลักษณะดังนี้:

Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github

2
ฉันเป็นคนโง่มาก พระคุณที่ช่วยให้รอดของฉันเพียงอย่างเดียวคือการทำเช่นนี้อาจช่วยให้ 'ผู้กระทำผิด' ในอนาคต
earthmeLon

1
มันเป็นความผิดพลาดที่ง่ายพอที่จะทำให้ ...
jasonwryan

1
เพิ่งช่วยฉันดังนั้นฉันขอขอบคุณคำตอบ!
Topher Fangio

1
สีฉัน doofus
jeremiah

นี่มันทำให้ฉัน
unity100

2

เรามีปัญหานี้และมันเป็นข้อผิดพลาดแบบตัดและวาง %มีการเพิ่มสัญลักษณ์เดียวในตอนท้ายของไฟล์คีย์ (ดังนั้นบรรทัดสุดท้าย-----END RSA PRIVATE KEY-----%) ไม่มีข้อผิดพลาดหรือข้อมูลการดีบักหรือสิ่งอื่นใดที่จะแนะนำว่าคีย์นั้นมีความยาวไม่ถูกต้องหรือมีการจัดรูปแบบไม่ดี แต่ ssh ขอข้อความรหัสผ่าน


1
สิ่งที่คล้ายกันเกิดขึ้นกับฉัน ฉันคัดลอกคีย์จากเทอร์มินัลอื่นและคัดลอกมากเกินไปโดยไม่สังเกตเห็น
Guillermo

1

ในกรณีของฉันปัญหาคือไคลเอนต์ SSH ของฉันไม่สนับสนุนคีย์ ED25519 ทางออกคือการสร้างคีย์ RSA และใช้แทน

ปัญหานี้เกิดขึ้นกับOpenSSH <6.5 (วิ่งssh -V) และฉาบ <0.68

สิ่งนี้สามารถเห็นได้ในผลลัพธ์ต่อไปนี้ของssh -vvv:

debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96
debug2: kex_parse_kexinit: hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com

บล็อกแรกอธิบายถึงสิ่งที่สนับสนุนลูกค้าและสองสิ่งที่เซิร์ฟเวอร์ที่สนับสนุน อย่างที่คุณเห็นไม่มีการกล่าวถึง 'curve25519' ในครึ่งบนซึ่งบ่งชี้ว่าไคลเอนต์ไม่สนับสนุนสิ่งนั้น


0

ในทีมของฉันเมื่อสิ่งนี้เกิดขึ้นมันไม่ได้เป็นปัญหากับสิ่งใดในพื้นที่ คีย์ ssh และ / หรือการเข้าถึงของผู้ใช้ไม่ได้รับการกำหนดค่าอย่างถูกต้องบนเซิร์ฟเวอร์ที่พวกเขากำลังเชื่อมต่อกับ (ในกรณีของเราเป็นแพลตฟอร์มโฮสติ้ง) ด้วยเหตุผลบางอย่างสิ่งนี้ทำให้เกิดพรอมต์สำหรับคีย์ ssh ที่ไม่มีอยู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.