Мне нужно иметь доступ к моему серверу (Ubuntu 8.04 LTS) с удаленных сайтов, но я хотел бы немного меньше беспокоиться о сложности пароля. Таким образом, я хотел бы потребовать, чтобы для входа в систему использовались SSH-ключи, а не имя / пароль. Тем не менее, мне еще многое предстоит узнать о безопасности, и, уже разбив тестовую коробку, когда я пытался это настроить, я остро осознаю возможность облажаться, пытаясь достичь этого. Итак, у меня есть вторая цель: я хотел бы потребовать, чтобы определенные диапазоны IP-адресов (например, 10.0.0.0/8) могли входить в систему с именем / паролем, но все остальные должны использовать ключ SSH для входа.
Как я могу достичь обеих этих целей?
Уже существует очень похожий вопрос здесь, но я не могу понять, как получить то, что я хочу, из этой информации.
Текущая тактика: прочитать документацию PAM (pam_access выглядит многообещающе) и посмотреть / etc / ssh / sshd_config.
Редактировать: В качестве альтернативы, есть ли способ указать, что определенные пользователи должны аутентифицироваться с помощью ключей SSH, а другие могут аутентифицироваться с помощью имени / пароля?
Решение, которое в настоящее время работает:
# Globally deny logon via password, only allow SSH-key login. PasswordAuthentication no # But allow connections from the LAN to use passwords. Match Address 192.168.*.* PasswordAuthentication yes
Блок Match Address также может быть блоком Match User, отвечая на мой второстепенный вопрос. На данный момент я просто считаю, что неспособность проанализировать адреса CIDR связана с причудой моей установки, и решаю повторить попытку, когда я перейду на Ubuntu 10.04 незадолго до этого. Оказалось, что PAM не нужен.
Не уверен, как PAM должен вписаться в это. В последней версии SSH (например, в версии 8.04) это должно быть так же просто, как использование блоков Match для адресного пространства, которое вы хотите разрешить.
Итак, ваш sshd_config должен содержать что-то вроде этого.
# global option no password auth (keys only)
PasswordAuthentication no
# permit password from rfc1918
Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
PasswordAuthentication yes