Я пытаюсь отключить вход в систему с паролем root и разрешить вход в систему только root с ключом ssh в debian 7.
cat << EOF >> /etc/ssh/sshd_config
PasswordAuthentication yes
UsePAM no
PermitRootLogin without-password
AllowUsers root test
Port 433
LoginGraceTime 1m
ClientAliveInterval 600
ClientAliveCountMax 0
EOF
service ssh restart
Я запускаю эти команды как часть сценария развертывания, но все же могу впоследствии войти в систему как root, используя пароль root (без использования ключа ssh).
Я прочитал довольно много руководств и, кажется, не понимаю, почему это происходит.
Вы проверили содержимое / etc / ssh / sshd_config?
Ваша команда не переписывает этот файл, он добавляется к нему. И первая строка в этом файле (по умолчанию) - «UsePAM yes».
И этот вариант будет использоваться, как и раньше ...
Если у вас нет действующего ключа ssh, в этом случае у пользователя root будет запрошен пароль, потому что у вас есть UsePAM yes (http://www.techrepublic.com/blog/linux-and-open-source/specify-who-can-log-in-via-openssh/).
P.S. Вы команда добавляет строку конфигурации в файл каждый раз, когда вы ее запускаете. Вам нужно либо напрямую отредактировать sshd_config, либо изменить свой «сценарий развертывания», чтобы переписать его, а не добавлять к нему.
Вы должны отключить ПарольАутентификация и включить PermitRootLogin
как это:
PasswordAuthentication no
PermitRootLogin yes