# Запрашиваем новый порт для SSH
echo "Введите новый порт для SSH"
read newport
sed -i "s/#Port 22/Port $newport/I" /etc/ssh/sshd_config
systemctl restart sshd.service
echo "Порт изменен на $newport"
Для отладки вместо -i поставь -e (изменения будет только в выводе)
Однако если ты пишешь скрипт рекомендую сразу писать все функции, не забыть про проверки, а еще лучше вынести их вообще в отельную функцию, но это я уже уплыл по древу.
#!/bin/bash
# Функция для изменения порта SSH
change_ssh_port() {
local newport=$1 # Принимаем новый порт как аргумент функции
# Проверяем, что порт является числом и находится в допустимом диапазоне
if ! [[ "$newport" =~ ^[0-9]+$ ]] || [ "$newport" -lt 1 ] || [ "$newport" -gt 65535 ]; then
echo "Ошибка: Порт должен быть числом от 1 до 65535."
return 1
fi
# Заменяем строку с комментарием на новый порт в конфигурационном файле SSH
sed -i "s/#Port 22/Port $newport/I" /etc/ssh/sshd_config
# Проверяем, что конфигурация SSH корректна
if sshd -t; then
# Перезапускаем службу SSH для применения изменений
systemctl restart sshd.service
echo "Порт изменен на $newport"
else
echo "Ошибка: Конфигурация SSH некорректна. Изменения не применены."
return 1
fi
}
echo "Введите новый порт для SSH:"
read newport # Читаем новый порт от пользователя
# Вызываем функцию с введенным номером порта
change_ssh_port "$newport"