CentOS 7 安裝/設定SSH
SSH算是網管人必備利器,只要SSH不死,你就沒必要進機房或是回公司…
對於諸多主機租任服務提供者來說,SSH更是必備工具!本文會列出基本設定方式(包括有無啟動SELinux的兩種設定方式)!
本文將會介紹在CentOS 7 安裝/設定SSH!
安裝SSH服務必要軟體
1 |
[andy@www ~]$ sudo yum install openssh openssh-server |
編輯SSH設定檔
1 |
[andy@www ~]$ sudo vi /etc/ssh/sshd_config |
搜尋Port 22
Port可以改成任一個大於1023的號碼
1 2 3 4 5 |
# If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # Port 22 |
為什麼要挑一個大於1023的Port?
因為0~1023是屬於System Ports,強烈建議不要混用,免得導致系統某些服務無法正常運作!
有興趣可以參考:維基百科-TCP/UDP埠列表
搜尋AllowUsers
修改後面的帳號,可以設定僅允許這些使用者帳號用SSH登入
1 |
AllowUsers 帳號1 帳號2 帳號3 |
帳號與帳號之間要用空白鍵隔開
搜尋PermitRootLogin
設定不允許root使用SSH登入
(預設是yes)
1 2 |
# Authentication: PermitRootLogin no |
每一台Linux都有管理者帳號root,不把root禁止真的是太危險了!
前提是,你有其他具管理者權限的帳號
搜尋Protocol
設定使用SSHv2連線
1 2 |
# The default requires explicit activation of protocol 1 Protocol 2 |
vim存檔離開,重新啟動SSH服務
1 |
[andy@www ~]$ sudo systemctl restart sshd.service |
設定開機啟動SSH服務
1 |
[andy@www ~]$ sudo systemctl enable sshd.service |
本步驟只有伺服器啟動SELinux才需要進行的設定
如果伺服器SSH Port不是預設值(22)的話,必須先將SSH Port加入SELinux的設定中
1 |
[andy@www ~]$ sudo semanage port -a -t ssh_port_t -p tcp 6543 |
保險起見,查詢現在SELinux設定清單中的SSH服務有哪些Port
(如果伺服器SSH Port是預設值(22),就只會顯示22一個Port喔!)
1 2 |
[andy@www ~]$ sudo semanage port -l | grep ssh ssh_port_t tcp 6543, 22 |
設定防火牆允許此port
若為非預設記得自行更改–add-port=你的port號/tcp
1 |
[andy@www ~]$ sudo firewall-cmd --permanent --zone=public --add-port=22/tcp |
重新載入防火牆設定
大功告成!
1 |
[andy@www ~]$ sudo firewall-cmd --reload |
怎麼測試?
格式:登入帳號@IP或主機名稱
指令:-p SSH服務Port號
1 |
[andy@www ~]$ ssh -p 22 andy@192.168.1.100 |
測試結束後輸入exit 就會關閉SSH連線!
Pingback:CentOS 7 架站教學彙整 (Apache 2.4 + MySQL 5.7 + php 7 + phpMyAdmin + SSH + sFTP) - BrilliantCode.net