Skip to main content

แนะนำแนวทางการใช้ ssh-key แทนการใส่รหัสผ่านทุกครั้งที่เชื่อมต่อ ssh

Published 2 min readMarkdown

ที่มา

สำหรับคนที่จำเป็นต้องใช้ ssh สำหรับ remote ไปที่เครื่อง server แล้วไม่อยากที่จะต้องคอยใส่รหัสผ่านทุกครั้งไป สามารถใช้วิธีนี้ในการสร้างคีย์ แล้วเอา public key ไปไว้ที่เครื่อง Server ได้ง่ายๆ ดังนี้

1. ที่เครื่องเรา (ssh client) ให้สร้าง key โดยใช้คำสั่ง

ssh-keygen -t rsa

หลังจากนั้นจะมีขึ้นถามว่าจะให้เก็บ key ไว้ที่ไหน และจะใช้ passphrase เป็นคำว่าอะไร กดใส่ไปจนเสร็จ

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/myname/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

หลังจากสร้างคีย์เสร็จแล้วจะขึ้นข้อความประมาณนี้

Your identification has been saved in /Users/myname/.ssh/id_rsa
Your public key has been saved in /Users/myname/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/MysHA256fInGeRprINt9AiUJZl36KBGXXH2RcTudl9 myname@mycom.local
The key's randomart image is:
+---[RSA 3072]----+
|     . HI .....  |
|       ^       ^ |
|      .......... |
|       ......... |
|        ........ |
|       .   .     |
|        .   .    |
|         .   .   |
|          .   .  |
+----[SHA256]-----+

2. หลังจากได้คีย์มาแล้ว ขั้นต่อไปเป็นการนำ public key ไปใส่ที่เครื่อง Server ปลายทาง โดยใชคำสั่งดังนี้

ssh-copy-id myname@mydestinationservername.com

โดยจะมีหน้าจอขึ้นเพื่อให้ถามรหัสผ่านสำหรับใช้ในการ Remote เข้าเครื่อง Server ก็ให้ใส่ไป โดยจะมีหน้าจอขึ้นมาประมาณนี้

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/myname/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
myname@mydestinationservername.com's password: 

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'myname@mydestinationservername.com'"
and check to make sure that only the key(s) you wanted were added.

แต่ถ้าไม่สำเร็จ ให้ใช้วิธีนำไฟล์ public key ไปวางที่ ~/.ssh/authorized_keys (แต่ถ้าสำเร็จก็ไม่ต้องทำขั้นตอนนี้)

3. ทดสอบ Remote ดู จะต้องไม่ขึ้นถามรหัสผ่าน

ssh myname@mydestinationservername.com

เช่น ขึ้น prompt ประมาณนี้ ก็สามารถใช้งานต่อได้เลย

[myname@mydestinationservername.com ~]$

หวังว่าบทความนี้จะเป็นประโยชน์กับคนที่เจอปัญหาอย่างเดียวกันนะครับ

No comments yet. Be the first to comment.

More from this blog