วิธีการติดตั้งเซิร์ฟเวอร์ OpenSSH จาก Source ใน Linux
OpenSSH เป็นโอเพ่นซอร์สฟรีที่ใช้โปรโตคอล SSH 2.0 อย่างเต็มรูปแบบ ซึ่งมีเครื่องมือมากมายสำหรับการเข้าถึงและจัดการระบบคอมพิวเตอร์ระยะไกลอย่างปลอดภัย และการจัดการคีย์การตรวจสอบสิทธิ์ เช่น ssh (การแทนที่ที่ปลอดภัยสำหรับ telnet), scp, sftp (การแทนที่ที่ปลอดภัยสำหรับ ftp), ssh-keygen, ssh-copy-id, ssh-add และอื่นๆ
เมื่อเร็วๆ นี้ OpenSSH 9.3 เปิดตัวและมาพร้อมกับคุณลักษณะใหม่ๆ และการแก้ไขข้อบกพร่องมากมาย คุณสามารถอ่านบันทึกประจำรุ่น SSH เพื่อดูข้อมูลเพิ่มเติมได้
ในบทความนี้ เราจะอธิบายวิธีการติดตั้งและกำหนดค่าเวอร์ชันล่าสุดของเซิร์ฟเวอร์และไคลเอ็นต์ OpenSSH บนระบบ Linux จากแหล่งที่มา เราถือว่าคุณมีการติดตั้งชุด OpenSSH อยู่แล้ว
ความต้องการ:
- ระบบ Linux Debian/Ubuntu หรือ RHEL/CentOS
- ซีคอมไพเลอร์
- Zlib 1.1.4 หรือ 1.2.1.2 หรือสูงกว่า
- LibreSSL หรือ OpenSSL >= 1.0.1 < 1.1.0
ติดตั้งเซิร์ฟเวอร์ OpenSSH จากแหล่งที่มา
ก่อนที่จะติดตั้ง SSH เวอร์ชันล่าสุด โปรดตรวจสอบเวอร์ชันปัจจุบันของ SSH ที่ติดตั้งในระบบของคุณโดยใช้คำสั่งต่อไปนี้
ssh -V
OpenSSH_7.7p2 Ubuntu-4ubuntu2.5, OpenSSL 1.0.2g 1 Mar 2016
จากผลลัพธ์ข้างต้น เวอร์ชัน OpenSSH ที่ติดตั้งคือ 7.7 หากต้องการติดตั้งเวอร์ชัน OpenSSH ล่าสุด ขั้นแรกคุณต้องติดตั้งการอ้างอิงสองสามรายการ ได้แก่เครื่องมือในการพัฒนาหรือสร้างสิ่งจำเป็นและแพ็คเกจที่จำเป็นอื่นๆ ดังนี้
-------------- On RedHat-based Distros --------------
sudo yum update
sudo yum group install 'Development Tools'
sudo yum install zlib-devel openssl-devel
-------------- On Debian-based Distros --------------
sudo apt update
sudo apt install build-essential zlib1g-dev libssl-dev
ในการสร้างสภาพแวดล้อมที่เหมาะสมสำหรับการติดตั้งเซิร์ฟเวอร์ OpenSSH เราจำเป็นต้องสร้างผู้ใช้ระบบและกลุ่มใหม่ชื่อ “sshd” รวมถึงสถานที่ที่ปลอดภัยสำหรับ โครต.
sudo mkdir /var/lib/sshd
sudo chmod -R 700 /var/lib/sshd/
sudo chown -R root:sys /var/lib/sshd/
sudo useradd -r -U -d /var/lib/sshd/ -c "sshd privsep" -s /bin/false sshd
อธิบายแฟล็กในคำสั่ง useradd ด้านบน:
-r
– บอก useradd ให้สร้างผู้ใช้ระบบ-U
– สั่งให้สร้างกลุ่มที่มีชื่อและ ID กลุ่มเดียวกัน-d
– ระบุไดเรกทอรีของผู้ใช้-c
– ใช้เพื่อเพิ่มความคิดเห็น-s
– ระบุเชลล์ของผู้ใช้
ตอนนี้ ให้ดาวน์โหลด tarball ของ OpenSSH เวอร์ชัน 9.3 จากมิเรอร์ HTTP ใดๆ ที่มีอยู่ หรือคุณสามารถใช้คำสั่ง wget ต่อไปนี้เพื่อดาวน์โหลดโดยตรงในเทอร์มินัลของคุณ
wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
tar -xzf openssh-9.3p1.tar.gz
cd openssh-9.3p1/
ตอนนี้เราจะสร้างและติดตั้งเซิร์ฟเวอร์ OpenSSH โดยใช้ --with-md5-passwords
, --with-privsep-path
และ --sysconfdir
ตัวเลือก ซึ่งจะติดตั้งไฟล์ทั้งหมดใน /usr/local/ (นี่คือคำนำหน้าการติดตั้งเริ่มต้น)
คุณสามารถดูตัวเลือกที่มีอยู่ทั้งหมดได้โดยการรัน ./configure -h
และปรับแต่งการติดตั้งของคุณเพิ่มเติม
./configure -h
ตัวอย่างเช่น หากต้องการเปิดใช้งานการสนับสนุน PAM และ SELinux ให้เพิ่มตัวเลือก --with-pam
และ --with-selinux
ตามลำดับ คุณจะต้องติดตั้งไฟล์ส่วนหัวที่จำเป็นทั้งหมด เพื่อให้พวกเขาได้ทำงาน
## Install PAM and SELinux Headers ##
sudo apt install libpam0g-dev libselinux1-dev [On Debian/Ubuntu]
sudo yum install pam-devel libselinux-devel [On CentOS/RHEL]
## Compile and Install SSH from Sources ##
./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh
make
sudo make install
เมื่อคุณติดตั้ง OpenSSH แล้ว ให้รีสตาร์ท SSH หรือเปิดหน้าต่างเทอร์มินัลอื่น และตรวจสอบเวอร์ชันของ OpenSSH ที่ติดตั้งอยู่ในระบบของคุณแล้ว
ssh -V
OpenSSH_9.3p1, OpenSSL 3.0.1 14 Dec 2021
ไฟล์การกำหนดค่า OpenSSH ต่างๆ อยู่ที่:
- ~/.ssh/* – ไดเร็กทอรีนี้จัดเก็บการกำหนดค่าไคลเอ็นต์ ssh เฉพาะผู้ใช้ (นามแฝง ssh) และคีย์
- /etc/ssh/ssh_config – ไฟล์นี้มีการกำหนดค่าไคลเอ็นต์ ssh ทั่วทั้งระบบ
- /etc/ssh/sshd_config – มีการกำหนดค่าบริการ sshd
หากต้องการกำหนดค่านามแฝง ssh โปรดดู: วิธีกำหนดค่าการเชื่อมต่อ SSH แบบกำหนดเองเพื่อทำให้การเข้าถึงระยะไกลง่ายขึ้น
คุณอาจต้องการอ่านบทความที่เกี่ยวข้องกับ SSH ต่อไปนี้
แค่นั้นแหละ! ในบทความนี้ เราได้อธิบายวิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ OpenSSH เวอร์ชันล่าสุดจากแหล่งที่มาบนระบบ Linux หากคุณมีคำถามหรือความคิดเห็นใดๆ โปรดใช้แบบฟอร์มคำติชมด้านล่างเพื่อติดต่อเรา