以前服務器上用的是ubuntu系統,修改ssh端口的時候很簡單,直接在配置文件修改就好了,但是在centos7上修改的時候發現修改端口之後sshd服務不能啓動了,如果設置兩個端口22和1122的話只能監聽到22端口,最後到處查找,最後找到了解決辦法:
流程如下:
1、修改sshd配置文件
2、設置防火牆firewall,允許新添加的端口被監聽
3、設置selinux,在selinux添加要添加的端口
4、重啓sshd服務
詳細步驟
系統環境:centos7
step1——修改配置文件
在centos7中,sshd的配置文件路徑:/etc/ssh/sshd_config
打開文件:sudo vim /etc/ssh/sshd_config
,修改配置文件需要使用root權限
假設我們要設置1122爲sshd端口
在文件中添加如下內容:
Port 1122
然後保存文件,如果現在重啓sshd服務,就會發現啓動失敗,原因就是firewall和semanage都沒有配置
step2——設置firewall
設置防火牆的命令如下:
添加想要修改的端口:
firewall-cmd --zone=public --add-port=1122/tcp --permanent
後面的permanent參數是保存配置,如果沒有這個參數,重啓之後配置就無效了
重啓防火牆
firewall-cmd --reload
查看添加端口是否成功,如果添加成功就顯示yes,否則就顯示no
firewall-cmd --zone=public --query-port=1122/tcp
這樣防火牆就設置好了,進行下一步
step3——設置selinux
selinux是一種安全保護機制,很多帖子在這一步的時候建議關閉selinux,如果是在測試服務器上,這樣的話比較方便,但是如果在生產服務器上,這樣的做法是不可取的
查看selinux允許的ssh端口
semanage port -l | grep ssh
添加1122端口到selinux
semanage port -a -t ssh_port_t -p tcp 1122
查看是否添加成功
semanage port -l | grep ssh
到這一步,所有需要設置的東西都完成了,重啓服務就好了
setp4——重啓服務
現在就可以重啓服務了,
命令:systemctl restart sshd.service
done,現在就完成了配置