Скрипт для отключения/включения входа по паролю через SSH

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

Пример использования:

Bash
cd /data/utils
bash ssh-pw.sh n
# bash ssh-pw.sh y

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

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

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

Bash
#!/bin/bash

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

if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <y/n>"
    exit 1
fi

if [ "$1" != "y" ] && [ "$1" != "n" ]; then
    echo "Invalid argument. Use 'y' to enable password authentication and 'n' to disable it"
    exit 1
fi

ENABLE_PASSWORD=$1
SSHD_CONFIG="/etc/ssh/sshd_config"

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

echo "Backup $SSHD_CONFIG..."
cp $SSHD_CONFIG $SSHD_CONFIG.backup

if [ "$ENABLE_PASSWORD" == "y" ]; then
    sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication yes/' $SSHD_CONFIG
    sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' $SSHD_CONFIG
else
    sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' $SSHD_CONFIG
    sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' $SSHD_CONFIG
fi

echo "Restart SSH for apply password $1"
systemctl daemon-reload
systemctl restart ssh

trap - ERR

if [ "$1" == "y" ]; then
    echo "Password authentication has been enabled"
else
    echo "Password authentication has been disabled"
fi


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



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

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

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

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