Я применил двухфакторную аутентификацию с помощью Google-Authenticator, применив марионеточный манифест к серверу centos. Я внес все необходимые изменения в файлы sshd_config и pam.d / sshd. Но после того, как я применил его, мой сервер перестает принимать любой пароль. Когда я пытаюсь войти в систему как root, мне предлагается ввести пароль, но когда я ввожу код аутентификатора Google, он его не принимает. В сообщении об ошибке говорится: «Нет поддерживаемых методов аутентификации (сервер отправлен: интерактивная клавиатура). Я попытался войти в систему, используя другого пользователя, для которого не была включена двухфакторная аутентификация. Но сервер не принимает пароль. Я не знаю, в чем здесь ошибка. Пожалуйста, помогите мне решить эту проблему.
Ниже приведен фрагмент написанного мной манифеста:
class tfa (
) {
package { 'google-authenticator':
ensure => 'present'
}
$line_string = " { +:ALL:100.0.0.0/24
+:ALL:LOCAL
-:ALL:ALL
}"
file { '/etc/security/access-local.conf':
path => '/etc/security/access-local.conf',
ensure => 'present',
content => $line_string
}
augeas { 'pam_sshd_config_ga':
context => '/files/etc/pam.d/sshd',
changes => 'ins 999 after "*[type = \'auth\'][control = \'required\'][module = \'pam_sepermit.so\']"
set 999/type auth
set 999/control required
set 999/module pam_google_authenticator.so',
onlyif => 'match "*[type = \'auth\'][control = \'required\'][module = \'pam_google_authenticator.so\']" size == 0'
}
augeas { 'pam_sshd_config_ga2':
context => '/files/etc/pam.d/sshd',
changes => 'rm "*[type = \'auth\'][control = \'substack\'][module = \'password-auth\']"',
onlyif => 'match "*[type = \'auth\'][control = \'substack\'][module = \'password-auth\']" size != 0'
}
augeas { 'pam_sshd_config_ga3':
context => '/files/etc/pam.d/sshd',
changes => 'ins 999 after "*[type = \'auth\'][control = \'required\'][module = \'pam_google_authenticator.so\']"
set 999/type auth
set 999/control pam_access.so
set 999/module accessfile=/etc/security/access-local.conf',
onlyif => 'match "*[type = \'auth\'][control = \'pam_access.so\'][module = \'accessfile=/etc/security/access-local.conf\']" size == 0'
}
augeas { 'sshd_config_ga':
context => '/files/etc/ssh/sshd_config',
changes => 'set ChallengeResponseAuthentication yes',
onlyif => 'get ChallengeResponseAuthentication !=yes'
}
file_line { 'ModifyConfFile':
path => '/etc/ssh/sshd_config',
multiple => false,
line => '#Authentication
AuthenticationMethods publickey,password,keyboard-interactive',
match => "#Authentication"
}