现在几乎所有的 VPS 云服务器默认 SSH 端口都是 22,很容易出现安全问题,建议改为其它高位数端口如 10086,可以手动修改,不过一键脚本更方便,这里分享 Rat's 大佬提取自 OneinStack 的一键修改 SSH 端口脚本。
支持系统:Debian、Ubuntu、CentOS,直接运行以下命令:
wget https://www.moerats.com/usr/down/sshport.sh && bash sshport.sh
或者:
wget https://raw.githubusercontent.com/sshadowrocket/useful_scripts/main/sshport.sh && bash sshport.sh
输入新的 SSH 端口确认,再打开防火墙端口:
#如果防火墙使用的 iptables(Centos 6),修改端口为 10086 iptables -I INPUT -p tcp --dport 10086 -j ACCEPT service iptables save service iptables restart #如果使用的是 firewall(CentOS 7) firewall-cmd --zone=public --add-port=10086/tcp --permanent firewall-cmd --reload #Debian 11 等可以使用 ufw sudo ufw allow 10086/tcp # SSH 在 10086 端口 sudo ufw enable #启用 UFW
最后重启 ssh 生效:
#CentOS 系统 service sshd restart #Debian/Ubuntu 系统 service ssh restart
如无意外就可以使用新端口 SSH 登录。下面是一键脚本源码备份:
# Use default SSH port 22. If you use another SSH port on your server if [ -e "/etc/ssh/sshd_config" ];then [ -z "`grep ^Port /etc/ssh/sshd_config`" ] && ssh_port=22 || ssh_port=`grep ^Port /etc/ssh/sshd_config | awk '{print $2}'` while :; do echo read -p "Please input SSH port(Default: $ssh_port): " SSH_PORT [ -z "$SSH_PORT" ] && SSH_PORT=$ssh_port if [ $SSH_PORT -eq 22 >/dev/null 2>&1 -o $SSH_PORT -gt 1024 >/dev/null 2>&1 -a $SSH_PORT -lt 65535 >/dev/null 2>&1 ];then break else echo "${CWARNING}input error! Input range: 22,1025~65534${CEND}" fi done if [ -z "`grep ^Port /etc/ssh/sshd_config`" -a "$SSH_PORT" != '22' ];then sed -i "s@^#Port.*@&\nPort $SSH_PORT@" /etc/ssh/sshd_config elif [ -n "`grep ^Port /etc/ssh/sshd_config`" ];then sed -i "s@^Port.*@Port $SSH_PORT@" /etc/ssh/sshd_config fi fi