ssh-agent เป็นโปรแกรมที่รันช่วงต้นๆของ X เซสชันสำหรับเก็บ private key ไว้ใช้ authenticate เวลาล็อกอินแบบใช้ public key ไปหาเครื่องอื่น. ถ้าลองดูโปรเซสด้วย pstree จะเห็นแบบนี้ครับ.
$ pstree
...
|-gdm---gdm-+-X
| `-sh-+-sh---xscreensaver
| |-ssh-agent
| `-xfce4-session
...
ในกรณีนี้ผมใช้ gdm เป็นตัวล็อกอินแบบกราฟิกแล้วมันจะรัน ssh-agent ให้อยู่แล้วโดยอัตโนมัติ. ถ้าดูจากไฟล์ปรับแต่งที่เกี่ยวข้องกับ gdm จะเห็นเป็นแบบนี้.
$ cat /etc/X11/gdm/Xsession
# add ssh-agent if found
sshagent="`which ssh-agent 2>/dev/null`"
if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
command="$sshagent -- $command"
elif [ -z "$sshagent" ] ; then
echo "$0: ssh-agent not found!"
fi
คือมีการสำรวจว่ามี ssh-agent หรือไม่. ถ้ามีก็รันโปรแกรม ssh-agent ให้โดยอัตโนมัติ.
โปรแกรม ssh-agent เป็นเอเจนต์เก็บ private key ซึ่งผู้ใช้ต้องใส่ private key (ตัวโปรแกรมจะถามพาสเฟรส) ให้กับ ssh-agent ด้วยคำสั่ง ssh-add.
$ ssh-add Enter passphrase for /home/poonlap/.ssh/id_dsa: Identity added: /home/poonlap/.ssh/id_dsa (/home/poonlap/.ssh/id_dsa)ตัวเอเจนต์จะจำพาสเฟรสในช่วงเวลาที่จำกัด. ถ้ามีการล็อกอินหาเครื่องอื่นๆผ่าน ssh และใช้ public key, ssh-agent จะทำหน้าที่จัดการเกี่ยวกับการ authentication. ผู้ใช้ไม่ต้องใส่พาสเฟรสเองอีกถ้า ssh-agent ยังจำพาสเฟรสได้อยู่.
ไม่มีความคิดเห็น:
แสดงความคิดเห็น