在 CentOS 上使用 bash 脚本更改 SSH 端口

Posted

技术标签:

【中文标题】在 CentOS 上使用 bash 脚本更改 SSH 端口【英文标题】:Changing SSH port with a bash script on CentOS 【发布时间】:2013-08-08 14:26:15 【问题描述】:

所以我写了一个脚本,可以更改 CentOS 上的 SSH 端口,但由于某种原因,我遇到了这个错误:

sshchangecOS6.sh:第 36 行:语法错误:文件意外结束

这是脚本:

#! /bin/bash
# This script changes the ssh port for logins on CentOS 5 and 6
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
   exit 2
read -r -p "Would you like to change the ssh port? [Y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]
then    
   read -p "What would you like to change the port to? (Chose between 1024-65535) " sshportconfig
   if (( ("$sshportconfig" > 1024) && ("$sshportconfig" < 65535) )); then
    echo "Port $sshportconfig" >> /etc/ssh/sshd_config
    echo "--------------------------------------------------------------------"
    echo ""
    echo ""
    echo "SSH port has been changed to: $sshportconfig. Written by Sincere the Minotaur."
    echo ""
    echo ""
    echo "--------------------------------------------------------------------"
   else
    echo "Port chosen is incorrect."
    exit 1
   fi
else 
   sshPort=$(grep "Port" /etc/ssh/sshd_config) | head -n 1
   echo "--------------------------------------------------------------------"
   echo ""
   echo ""
   echo "SSH is still: $sshPort"
   echo "Written by Sincere the Minotaur."
   echo ""
   echo "---------------------------------------------------------------------"
   exit 1
fi
exit 0

谁能解释错误在哪里?

【问题讨论】:

【参考方案1】:

如果if [[ $EUID -ne 0 ]]; then,则第一个没有fi。您需要使用fi 关闭每个if

【讨论】:

谢谢!我知道我错过了什么。

以上是关于在 CentOS 上使用 bash 脚本更改 SSH 端口的主要内容,如果未能解决你的问题,请参考以下文章

ss-panel(ss-R)前后端一键安装脚本(转)

Linux CentOS 8定时任务脚本crond.sh,检测状态,自动重启脚本sh

centos 6 / 7 安装ss代理

如何使用 bash 脚本更改多个文件的扩展名?

如何使用 mail 或 mailx 命令从 bash 脚本以 HTML 格式发送电子邮件(Centos/Redhat)

vsftpd一键安装脚本