เข้าสู่ระบบและถ่ายโอนข้อมูลจากเครื่องอื่นอย่างปลอดภัยด้วย SSH

ซอฟต์แวร์สำหรับการส่งข้อมูลผ่านทางเครือข่าย และการล็อกอินเข้าสู่ระบบแบบระยะไกล (Remote) บนลินุกซ์ ที่ได้รับความนิยมมากก็คือ OpenSSH เนื่องจากการติดต่อสื่อสารระหว่างเครื่องเซิร์ฟเวอร์และไคลเอนท์ จะมีการเข้ารหัสทั้งหมด ซึ่งใน OpenSSH จะรองรับ Secure Copy (SCP) และ Secure FTP (SFTP) ซึ่งจะมาแทน FTP และรองรับ Secure Shell (SSH) ซึ่งมาแทน TELNET ซึ่งในปัจจุบันOpenSSH ไม่ได้จำกัดการใช้งานอยู่ในเฉพาะลินุกซ์แล้ว ทั้ง SSH และ SCP ในส่วนของไคลเอนท์ ก็สามารถใช้งานได้ในระบบปฏิบัติการไมโครซอฟต์วินโดว์ (Microsoft Windows) ด้วย

 

เริ่มต้นกับ OpenSSH

โดยปกติแล้ว OpenSSH จะถูกติดตั้งมาพร้อมกับลินุกซ์อยู่แล้ว ทั้ง SSH และ SCP จะใช้คอนฟิกกูเรชั่นไฟล์ร่วมกัน ซึ่งจะอยู่ที่ไดเรคเทอรี /etc/ssh

ใน CentOS / RedHat Linux สามารถให้ SSH ทำงานตั้งแต่เริ่มต้นระบบ โดยใช้คำสั่งดังนี้

# chkconfig sshd on

ตรวจสอบการทำงานของ SSH ว่าทำงานได้หรือไม่ โดยให้ลองทำการ start , stop และ restart ดูดังนี้

# /etc/init.d/sshd start
Starting sshd: [ OK ]
# /etc/init.d/sshd stop

Stopping sshd: [ OK ]
# /etc/init.d/sshd restart

Stopping sshd: [FAILED]
Starting sshd: [ OK ]

การปรับแต่ง OpenSSH บน CentOS 5.0

ในขั้นตอนนี้จะเป็นการปรับแต่งคุณสมบัติต่างๆ ของ OpenSSH เพื่อให้ตรงกับความต้องการของผู้ดูแลระบบ ซึ่งไดเรคเทอรีของไฟล์คอนฟิกกูเรชั่นต่างๆ จะอยู่ที่ /etc/ssh ซึ่งมีไฟล์คอนฟิกกูเรชั่นหลักๆ ดังนี้

* ssh_config สำหรับคอนฟิกกูเรชั่นให้ฝั่งของเครื่องไคลเอนท์ โดยปกติแล้วเราจะใช้ค่าดีฟอลต์ นั่นก็คือ เครื่องไคลเอนท์ทุกเครื่อง ใช้ระบบเดียวกันหมด

* sshd_config สำหรับคอนฟิกกูเรชั่นทางฝั่งเซิร์ฟเวอร์

การปรับแต่งระบบให้ทำการปรับแต่งที่ไฟล์ /etc/ssh/sshd_config ซึ่งโดยปกติแล้ว SSH จะทำงานที่ TCP พอร์ต 22 ในการปรับแต่งนั้น นิยมปรับแต่งเรื่องของความปลอดภัย โดยมากจะไม่อนุญาตให้ผู้ใช้ root ทำการล็อกอินผ่านทาง SSH โดยแก้ไขคุณสมบัติ PermitRootLogin ให้มีค่าเป็น no ดังนี้

จาก
#PermitRootLogin yes
เป็น
PermitRootLogin no

เมื่อแก้ไขเสร็จแล้ว ให้ทำการรีสตาร์ทเซอร์วิส ดังนี้

# /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

การล็อกอินเข้าสู่ระบบผ่าน SSH

การล็อกอินเข้าสู่ระบบ จากเครื่องที่ใช้ระบบปฏิบัติการลินุกซ์ สามารถทำได้ดังนี้

1. รูปแบบคำสั่งเป็นดังนี้ ssh -l username server ตัวอย่างเช่น

# ssh -l mana 192.168.222.2

The authenticity of host '192.168.222.2 (192.168.222.2)' can't be established.
RSA key fingerprint is d8:31:fb:fe:d4:c9:e7:fe:a6:69:eb:57:82:7a:27:12.
Are you sure you want to continue connecting (yes/no)? Yes --> บันทึกคีย์ สำหรับการเชื่อมต่อ
Warning: Permanently added '192.168.222.2' (RSA) to the list of known hosts.
mana@192.168.222.2's password: ใส่รหัสผ่าน
Last login: Wed May 9 12:47:46 2007 from 192.168.222.2
[mana@server1 ~]$

2. รูปแบบคำสั่งเป็นดังนี้ ssh username@server ตัวอย่างเช่น

# ssh mana@192.168.222.2

The authenticity of host '192.168.222.2 (192.168.222.2)' can't be established.
RSA key fingerprint is d8:31:fb:fe:d4:c9:e7:fe:a6:69:eb:57:82:7a:27:12.
Are you sure you want to continue connecting (yes/no)? Yes --> บันทึกคีย์ สำหรับการเชื่อมต่อ
Warning: Permanently added '192.168.222.2' (RSA) to the list of known hosts.
mana@192.168.222.2's password: ใส่รหัสผ่าน
Last login: Wed May 9 23:03:52 2007 from 192.168.222.2