56 lines
1.7 KiB
Bash
56 lines
1.7 KiB
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
|
||
|
||
trap 'echo -e "\033[31mSomething went wrong\033[0m"; exit 1' EXIT
|
||
set -e
|
||
|
||
# Путь к конфигурационному файлу sshd
|
||
SSHD_CONFIG="/etc/ssh/sshd_config"
|
||
|
||
# Функция включения или отключения доступа по паролю
|
||
toggle_password_access() {
|
||
local enable=$1
|
||
if [ "$enable" == "y" ]; then
|
||
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication yes/' $SSHD_CONFIG
|
||
sudo sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' $SSHD_CONFIG
|
||
else
|
||
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' $SSHD_CONFIG
|
||
sudo sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' $SSHD_CONFIG
|
||
fi
|
||
}
|
||
|
||
# Бэкапим текущий конфигурационный файл
|
||
sudo cp $SSHD_CONFIG $SSHD_CONFIG.backup
|
||
|
||
# Применение изменений
|
||
toggle_password_access "$1"
|
||
|
||
# Перезапуск службы sshd для применения изменений
|
||
sudo systemctl restart sshd
|
||
|
||
|
||
trap - EXIT
|
||
|
||
# Уведомление о завершении
|
||
if [ "$1" == "y" ]; then
|
||
echo "Password authentication has been enabled"
|
||
else
|
||
echo "Password authentication has been disabled"
|
||
fi
|