Цель данного скрипта — легко, при помощи одной команды отключать/включать вход по паролю через SSH. Данный скрипт является частью системы для автоматической конфигурации сервера.
Пример использования:
Bash
cd /data/utils
bash ssh-pw.sh n
# bash ssh-pw.sh y
Основные этапы:
- Делаем резервную копию файла
/etc/ssh/sshd_config
, в котором будут производиться правки. - Редактируем параметр
PasswordAuthentication yes
- Перезапускаем 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
Кроме того, автор проекта ищет работу. Мое резюме.