ฉันจะเปลี่ยนวลีรหัสผ่านส่วนตัวของฉันได้อย่างไร


283

ฉันมีคู่คีย์สาธารณะ / ส่วนตัวที่มีอยู่ คีย์ส่วนตัวได้รับการป้องกันด้วยรหัสผ่านและการเข้ารหัสอาจเป็น RSA หรือ DSA ปุ่มเหล่านี้เป็นชนิดที่คุณสร้างด้วยและโดยทั่วไปการจัดเก็บภายใต้ssh-keygen~/.ssh

ฉันต้องการเปลี่ยนรหัสผ่านของรหัสส่วนตัว ฉันจะไปเกี่ยวกับมันบนเชลล์ Unix มาตรฐานได้อย่างไร

นอกจากนี้ฉันจะลบรหัสผ่านได้อย่างไร แค่เปลี่ยนเป็นว่างเปล่า

คำตอบ:


371

วิธีเปลี่ยนข้อความรหัสผ่านบนคีย์ DSA เริ่มต้นของคุณ:

$ ssh-keygen -p -f ~/.ssh/id_dsa

จากนั้นให้ข้อความรหัสผ่านเก่าและใหม่ของคุณ (สองครั้ง) ที่พร้อมท์ (ใช้~/.ssh/id_rsaหากคุณมีคีย์ RSA)

รายละเอียดเพิ่มเติมจากman ssh-keygen:

[...]
SYNOPSIS
    ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
               [-f output_keyfile]
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
[...]
     -f filename
             Specifies the filename of the key file.
[...]
     -N new_passphrase
             Provides the new passphrase.

     -P passphrase
             Provides the (old) passphrase.

     -p      Requests changing the passphrase of a private key file instead of
             creating a new private key.  The program will prompt for the file
             containing the private key, for the old passphrase, and twice for
             the new passphrase.
[...]

1
นี่คือจากการจัดส่งด้วย man page ที่มี net-misc / openssh-5.2_p1-r2 บน Gentoo Linux
Mike Mazur

12
นอกจากนี้เพื่อประโยชน์ของคนขี้เกียจในอนาคตฉันจะย้อนกลับคำสั่งซื้อ: ผู้ตอบด่วนก่อนหน้าคนในภายหลัง
kch

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

5
หากเครื่องของคุณใช้ OpenSSH> = 6.5 คุณควรใช้-oตัวเลือกเพื่อเปิดใช้งานรูปแบบไพรเวตคีย์ใหม่ (bcrypt เป็น KDF ตามค่าเริ่มต้น) กับรุ่นเก่า OpenSSH, ใช้ PKCS # 8 สำหรับไฟล์คีย์ส่วนตัวความปลอดภัยมากขึ้น
Quinn

2
@FranciscoLuz คำสั่งในคำตอบของฉันเฉพาะกับคีย์ DSA หากคุณมีคีย์ RSA คำสั่งของคุณจะถูกต้อง ฉันเพิ่มความชัดเจนในคำตอบเพื่อแก้ไขปัญหานี้
Mike Mazur

-9

ลบกุญแจสาธารณะ / ส่วนตัว SSH ของคุณ:

rm ~/.ssh/id_rsa*

สร้าง keypair ใหม่โดยเลือกวลีรหัสผ่านใหม่:

ssh-keygen -t rsa -f ~/.ssh/id_rsa

เพิ่มคีย์ส่วนตัวที่สร้างขึ้นใหม่ใน OS X Keychain ของคุณเพื่อจัดเก็บวลีรหัสผ่านและจัดการการปลดล็อกโดยอัตโนมัติ:

ssh-add -K ~/.ssh/id_rsa

คัดลอกกุญแจสาธารณะไปยังคลิปบอร์ด OS X สำหรับเพิ่มไปยังบริการเว็บเช่น GitHub เป็นต้น

cat ~/.ssh/id_rsa.pub | pbcopy

เพิ่มพับลิกคีย์ที่คุณสร้างขึ้นใหม่ไปยัง~/.ssh/authorized_keysไฟล์ของรีโมตเซิร์ฟเวอร์ ตรวจสอบให้แน่ใจว่าสิทธิ์ที่ถูกต้องของทั้ง~/.sshโฟลเดอร์ระยะไกล(700) และ~/.ssh/authorized_keys(600) คุณอาจต้องการตรวจสอบโดยใช้ssh-copy-idเพื่อทำให้กระบวนการนี้ง่ายขึ้น


3
ผู้โพสต์ถามถึงวิธีการเปลี่ยนข้อความรหัสผ่านบนกุญแจของพวกเขาอย่าทิ้งมันและสร้างรหัสใหม่ และพวกเขาไม่เคยพูดถึง OS X.
musicinmybrain

2
ผมจะได้ upvoted คำตอบนี้ถ้ามันไม่ได้สำหรับทั้งสามประเด็น: 1.authorized_keysการลบคีย์เก่าไม่ได้เป็นจุดเริ่มต้นที่ดีตั้งแต่คุณจะต้องเหล่านั้นเมื่อปรับปรุง 2.คุณไม่ได้พูดถึงว่าทำไมการสร้างคีย์ใหม่ดีกว่าการเปลี่ยนรหัสผ่านเก่า 3.คุณตั้งสมมติฐานเกี่ยวกับระบบปฏิบัติการซึ่งคำถามไม่ได้รับการสนับสนุน
kasperd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.