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

时间:2013-08-07 09:21:51

标签: bash ssh port centos6

所以我编写了一个可以更改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 个答案:

答案 0 :(得分:2)

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