Скрипт для изменения SSH порта

Цель данного скрипта — легко, при помощи одной команды изменять порт SSH. Данный скрипт является частью системы для автоматической конфигурации сервера.

Основные этапы:

  1. Проверяем, что параметр порта задан и является числом
  2. Делаем резервную копию файла /etc/ssh/sshd_config
  3. Редактируем параметр Port
  4. Перезапускаем SSH

Полный код скрипта приведен ниже:

Bash
#!/bin/bash

if [ "$(id -u)" != "0" ]; then
    echo -e "\033[31mThis script requires superuser rights.\033[0m"
    exit 0
fi

if [ -z "$1" ]; then
  echo "Please provide the port as an argument"
  exit 1
fi

NEW_PORT="$1"
SSH_CONFIG_FILE="/etc/ssh/sshd_config"

# Проверяем, что параметр является числом
if ! [[ "$NEW_PORT" =~ ^[0-9]+$ ]]; then
  echo -e "\033[31mPort must be a number\033[0m"
  exit 1
fi

trap 'echo -e "\033[31mSomething went wrong\033[0m"; exit 1' EXIT
set -e

echo "Change SSH port to $NEW_PORT..."
cp $SSH_CONFIG_FILE $SSH_CONFIG_FILE.bak
sed -i "s/^#\?Port [0-9]*/Port $NEW_PORT/" $SSH_CONFIG_FILE

systemctl daemon-reload
systemctl restart ssh

trap - EXIT
echo "SSH port successfully changed to $NEW_PORT."


Данный скрипт является частью нашего репозитория utils.



Если вам интересен наш проект, есть вопросы, замечания, или предложения — оставляйте комментарии или пишите на почту: checkerwars@mail.ru

Кроме того, автор проекта ищет работу. Мое резюме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *