SSH

เนื้อหา

Secure Shell หรือ SSH คือโพรโทคอลสำหรับเครือข่ายคอมพิวเตอร์
ที่ออกแบบมาเพื่อให้เข้าถึงไปยังคอมพิวเตอร์เครื่องอื่นๆ และทำงานต่างๆ บนเครื่องนั้น

SSH ออกแบบมาใช้ทดแทน rlogin, TELNET และ rsh เนื่องด้วยเหตุผลด้านความปลอดภัย
เพราะ SSH ใช้วิธีเข้ารหัสข้อมูลที่ส่งผ่านระหว่างเครื่อง

ข้อมูลจาก http://th.wikipedia.org/wiki/Secure_Shell

สร้าง key pair ที่เครื่องเรา

อันดับแรกสร้าง key pair สำหรับใช้งานที่เครื่องของเราก่อน

local$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/LOCALUSER/.ssh/id_rsa):

เราก็กด enter เพื่อใช้ชื่อไฟล์นี้สำหรับเก็บ key
หรือจะพิมพ์ชื่อไฟล์อื่นก็ได้แล้วแต่เราต้องการ

หลังจากนั้นก็ใส่ passphrase หรือจะปล่อยว่างก็ได้ครับ
แต่แนะนำว่าใส่ดีกว่าเพื่อความปลอดภัยตอน log in

เสร็จแล้วจะมีไฟล์ id_rsa และ id_rsa.pub โผล่มาใน ~/.ssh
ซึ่งเราจะต้อง copy public key ที่อยู่ในไฟล์ id_rsa.pub
ไปไว้บน server ครับ

local$ cat ~/.ssh/id_rsa.pub

เราจะเห็น key ที่เราต้อง copy ไปไว้บน server หน้าตาประมาณนี้

ssh-rsa AAAAB3NzaC...................... localuser@machine.local

ตั้งค่าบน Server

ถ้าเรา login เป็น root อยู่ให้เรา switch เป็น user ที่เราต้องการเข้าใช้งานก่อน

# su - USER

หลังจากนั้นสร้าง directory ชื่อ .ssh ไว้ที่ home directory ก่อน (ถ้ายังไม่มี)
และเปลี่ยนสิทธิ์เป็น 700

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

และทำการ copy public key จากเครื่องของเราไปวางในไฟล์ ~/.ssh/authorized_keys
เท่านี้เป็นอันจบกระบวนการ

แต่เดี๋ยวก่อน ยังไม่หมดแค่นั้น​ … !!!

เราต้องไปเปิดใช้งาน ssh บน server ที่เราต้องการ remote เข้าไปใช้งานก่อน
(วิธีการก็ search หาเอานะครับ มีอยู่ทั่วไป)
แต่เท่าที่ผมเจอจะใช้งานได้เลย เราอาจจะแค่ตั้งค่าเพิ่มอีกเล็กน้อยดังนี้ครับ

# nano /etc/ssh/sshd_config
  • ปิดไม่ให้ root เข้าใช้งานผ่าน ssh (อันนี้แนะนำอย่างยิ่ง)

PermitRootLogin no

  • ปิดการ login โดยใช้ password และไปใช้ key ที่เราสร้างไว้เมื่อกี๊ในการ authenticate แทน

PasswordAuthentication no

แล้วก็ restart service รอบนึง เป็นอันจบ

# service ssh restart

ข้อดี

  • การไม่ให้ root เข้าใช้งานผ่าน ssh หลักๆ ก็เพื่อป้องกันเหล่า hacker
    ที่จะเข้ามาแล้วได้สิทธิ์ root ซึ่งแน่นอนว่าอันตรายมาก
  • ป้องกันการโดนดัก password จากโปรแกรมพวก key logger
    เพราะว่าตอน login เราไม่ต้องพิมพ์ password
  • เข้าใช้ได้เฉพาะ client ที่ใส่ key ไว้ (เพื่อความปลอดภัย ของทรัพย์สินและครอบครัว … -_-ไม่ใช่แระ)
  • ไม่ต้องพิมพ์เยอะ สำหรับพวกขี้เกียจพิมพ์ (อย่างผมเป็นต้น 555)

ลองใช้งาน

$ ssh USER@HOSTNAME

ถ้าเป็นการ login ครั้งแรก จะโดนถามว่าจะยอมรับ RSA key จากปลายทาง ไหม
ก็ตอบ yes ไปครับ และอาจจะต้องพิมพ์ passphrase ก่อนที่เราใส่เข้าไปตอนสร้าง key
ถ้าเข้าใช้ได้ ก็เป็นอันเสร็จสิ้นครับ … บัย