歲月留聲

一键修改Linux VPS服务器默认SSH端口

大多数 VPS 服务器默认 SSH 端口都是 22,容易出现安全问题,建议改为其它高位数端口如 10086,可以手动修改,不过一键脚本更方便,这里分享 Rat's 大佬提取自 OneinStack 的一键修改 SSH 端口脚本。

一键修改Linux VPS服务器默认SSH端口 - 第1张图片

「一键修改Linux VPS服务器默认SSH端口:https://0xo.net/690」

支持系统: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 端口确认,再打开防火墙端口:

「一键修改Linux VPS服务器默认SSH端口:https://0xo.net/690」
#如果防火墙使用的 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

设置使用密钥登录可参考:VPS 使用 SSHKey_Installer 一键开启密钥安全登录

「一键修改Linux VPS服务器默认SSH端口:https://0xo.net/690」

「一键修改Linux VPS服务器默认SSH端口:https://0xo.net/690」
退出移动版