ฉันจะตรวจสอบ / ตรวจสอบ / ทดสอบ / ตรวจสอบข้อความรหัสผ่าน SSH ของฉันได้อย่างไร


297

ฉันคิดว่าฉันลืมข้อความรหัสผ่านสำหรับคีย์ SSH ของฉัน แต่ฉันมีลางสังหรณ์ว่ามันอาจจะเป็นอะไร ฉันจะตรวจสอบว่าฉันถูกต้องได้อย่างไร


5
มันเป็นpassphraseไม่มีรหัสผ่าน;)
Timo

คำตอบ:


123

คุณสามารถยืนยันวลีรหัสผ่าน SSH ของคุณได้โดยพยายามโหลดลงในตัวแทน SSH ของคุณ ด้วยOpenSSHssh-addนี้จะทำผ่านทาง

เมื่อคุณทำเสร็จแล้วอย่าลืมที่จะขนข้อความรหัสผ่าน SSH ssh-add -dของคุณจากท่าเรือโดยการเรียกใช้


13
เมื่อคุณตรวจสอบเสร็จแล้วให้ยกเลิกการโหลดข้อความรหัสผ่าน SSH ที่สำคัญของคุณจากตัวแทน SSH ของคุณด้วยssh-add -d
Kache

1
ssh-add ต้องการสิทธิ์ของผู้ดูแลระบบในเครื่องฉันคิดว่า ฉันได้รับข้อผิดพลาด: "ไม่สามารถเปิดการเชื่อมต่อกับตัวแทนการตรวจสอบความถูกต้องของคุณ"
IgorGanapolsky

@IgorGanapolsky: ไม่ต้องใช้ตัวแทนการตรวจสอบความถูกต้องที่ทำงานอยู่ ปรับเปลี่ยนสคริปต์เริ่มต้นหรือตัวเลือกเพื่อนำขึ้น
Ignacio Vazquez-Abrams


หากคุณกำลังใช้ selinux อยู่คุณอาจต้องการตรวจสอบบริบทของโฮมไดเร็กทอรีและไฟล์. ssh! ฉันโชคดีที่สามารถใช้การแก้ไขแบบง่ายนี้ได้: # restorecon -R -v /home/userเพื่อตรวจสอบว่านี่เป็นปัญหาหรือไม่ (แม้ว่าคำสั่งก่อนหน้านี้จะไม่ทำให้เกิดปัญหาใด ๆ ) คุณสามารถใช้$ ls -lZR <home_dir>เพื่อตรวจสอบบริบท หากคุณไม่เห็นuser_home_tในไดเรกทอรีบ้านและssh_home_tใน.sshไดเรกทอรีและauthorized_keysไฟล์ให้ใช้restoreconเพื่อแก้ไข
fbicknel

523

ssh-keygen -y

ssh-keygen -y จะแจ้งให้คุณใส่ข้อความรหัสผ่าน (หากมี)

    หากคุณป้อนข้อความรหัสผ่านที่ถูกต้องมันจะแสดงรหัสสาธารณะที่เกี่ยวข้อง
    หากคุณป้อนข้อความรหัสผ่านผิดรหัสจะแสดงload failedขึ้น
    หากคีย์ไม่มีข้อความรหัสผ่านมันจะไม่พร้อมท์ให้คุณใส่ข้อความรหัสผ่านและจะแสดงรหัสสาธารณะที่เกี่ยวข้องให้คุณทันที

เช่น,

สร้างคู่คีย์สาธารณะ / ส่วนตัวใหม่โดยมีหรือไม่มีวลีรหัสผ่าน:

$ ssh-keygen -f /tmp/my_key
...

ตอนนี้ดูว่าคุณสามารถเข้าถึงคู่กุญแจ:

$ ssh-keygen -y -f /tmp/my_key


ต่อไปนี้เป็นตัวอย่างเพิ่มเติมที่แสดงผลลัพธ์

สร้างคู่คีย์สาธารณะ / ส่วนตัวใหม่โดยมีหรือไม่มีวลีรหัสผ่าน:

$ ssh-keygen -f /tmp/my_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/my_key.
Your public key has been saved in /tmp/my_key.pub.
The key fingerprint is:
de:24:1b:64:06:43:ca:76:ba:81:e5:f2:59:3b:81:fe rob@Robs-MacBook-Pro.local
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

พยายามเข้าถึงคู่คีย์โดยป้อนข้อความรหัสผ่านที่ถูกต้อง โปรดทราบว่ารหัสสาธารณะจะปรากฏขึ้นและสถานะทางออก ( $?) จะ0แสดงถึงความสำเร็จ:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBJhVYDYxXOvcQw0iJTPY64anbwSyzI58hht6xCGJ2gzGUJDIsr1NDQsclka6s0J9TNhUEBBzKvh9nTAYibXwwhIqBwJ6UwWIfA3HY13WS161CUpuKv2A/PrfK0wLFBDBlwP6WjwJNfi4NwxA21GUS/Vcm/SuMwaFid9bM2Ap4wZIahx2fxyJhmHugGUFF9qYI4yRJchaVj7TxEmquCXgVf4RVWnOSs9/MTH8YvH+wHP4WmUzsDI+uaF1SpCyQ1DpazzPWAQPgZv9R8ihOrItLXC1W6TPJkt1CLr/YFpz6vapdola8cRw6g/jTYms00Yxf2hn0/o8ORpQ9qBpcAjJN
$ echo $?
0

พยายามเข้าถึงคู่คีย์โดยป้อนข้อความรหัสผ่านไม่ถูกต้อง โปรดทราบว่าข้อความแสดงข้อผิดพลาด "โหลดล้มเหลว" จะปรากฏขึ้น (ข้อความอาจแตกต่างกันไปขึ้นอยู่กับระบบปฏิบัติการ) และสถานะทางออก ( $?) จะ1แสดงถึงข้อผิดพลาด:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
load failed
$ echo $?
1

พยายามเข้าถึงคู่คีย์ที่ไม่มีข้อความรหัสผ่าน โปรดทราบว่าไม่มีข้อความแจ้งสำหรับวลีรหัสผ่านคีย์สาธารณะจะปรากฏขึ้นและสถานะทางออก ( $?) จะ0แสดงถึงความสำเร็จ:

$ ssh-keygen -y -f /tmp/my_key_with_no_passphrase
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLinxx9T4HE6Brw2CvFacvFrYcOSoQUmwL4Cld4enpg8vEiN8DB2ygrhFtKVo0qMAiGWyqz9gXweXhdmAIsVXqhOJIQvD8FqddA/SMgqM++2M7GxgH68N+0V+ih7EUqf8Hb2PIeubhkQJQGzB3FjYkvRLZqE/oC1Q5nL4B1L1zDQYPSnQKneaRNG/NGIaoVwsy6gcCZeqKHywsXBOHLF4F5nf/JKqfS6ojStvzajf0eyQcUMDVhdxTN/hIfEN/HdYbOxHtwDoerv+9f6h2OUxZny1vRNivZxTa+9Qzcet4tkZWibgLmqRyFeTcWh+nOJn7K3puFB2kKoJ10q31Tq19
$ echo $?
0

2
หากไม่มีรหัสผ่านก็จะพิมพ์รหัสสาธารณะที่เกี่ยวข้อง
Kyrremann

1
ขอบคุณ @Kyrremann! ฉันได้อัปเดตคำตอบเพื่อแสดงว่า
Rob Bednark

ssh-keygen -yถามถึงไฟล์คีย์และเสนอค่าเริ่มต้นเมื่อคลิกกลับมาเหมือนที่คาดไว้
Timo

ฉันเคยssh-keygen -yตรวจสอบข้อความรหัสผ่านของคีย์ ssh ของฉัน มันทำงานได้ดียกเว้นอูบุนตูของฉันช้าอย่างไม่น่าเชื่อ โปรแกรมส่วนใหญ่สามารถเริ่มต้นใช้งานได้ในหนึ่งนาทีขึ้นไปในขณะที่การใช้งาน CPU เป็น 100% หลังจากรีสตาร์ทแล็ปท็อปของฉันฉันสามารถเข้าสู่ระบบแทบจะไม่ใช้เวลาสักครู่เพื่อดูเดสก์ท็อปของฉัน ในที่สุดฉันได้พบปัญหานี้บนถามอูบุนตู ฉันต้องเริ่มต้นด้วยgnome-keyring-daemonการแก้ไขปัญหา
Adam Fónagy

2

การขยายโซลูชันของ @ RobBednark ไปยังสถานการณ์ Windows + PuTTY เฉพาะคุณสามารถทำได้ดังนี้

  1. สร้างคู่คีย์ SSH ด้วย PuTTYgen (ทำตามคีย์ SSH ของคุณใน Windows ด้วยตนเอง ) บันทึกลงในไฟล์ PPK

  2. ด้วยเมนูบริบทใน Windows Explorer เลือกแก้ไขด้วย PuTTYgen มันจะถามรหัสผ่าน

หากคุณพิมพ์รหัสผ่านผิดรหัสผ่านจะปรากฏขึ้นอีก

หมายเหตุ: หากคุณต้องการที่จะพิมพ์ให้ใช้คำสั่งต่อไปนี้ในโฟลเดอร์ที่มีไฟล์ PPK puttygen private-key.ppk -yไปนี้:


0

ใช้ "ssh-keygen -p" คุณสามารถเพิ่ม "-f"

มันจะแจ้งให้คุณใส่รหัสผ่านเก่า หากรหัสผ่านถูกต้องระบบจะแจ้งให้ป้อนรหัสผ่านใหม่ หากรหัสผ่านเก่าไม่ถูกต้องคุณจะได้รับ "ไม่สามารถโหลดรหัส <... >"


-1

หากข้อความรหัสผ่านของคุณคือปลดล็อคคีย์ SSH ของคุณและคุณไม่มีssh-agentแต่ติดตั้ง sshd (SSH daemon) บนเครื่องของคุณให้ทำ:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;
ssh localhost -i ~/.ssh/id_rsa

~/.ssh/id_rsa.pubกุญแจสาธารณะอยู่ที่ไหนและ~/.ssh/id_rsaเป็นกุญแจส่วนตัว


1
มันไม่ได้ขอวลีรหัสผ่านในการทำเช่นนี้
Imme22009

มันไม่สำหรับฉันที่จะปลดล็อค id_rsa ส่วนตัวถึง SSH localhost
Alexx Roche

ฉันได้รับข้อผิดพลาด: "ssh: เชื่อมต่อกับโฮสต์ localhost port 22: หมายเลขไฟล์ไม่ถูกต้อง"
IgorGanapolsky
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.