标签归档:SSH端口一键修改脚本

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

现在几乎所有的 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