Я пытаюсь добавить агент jenkins под управлением Rocky Linux 8.
Как настроить jenkins-агент, чтобы разрешить ssh-соединение с jenkins-контроллера через пароль?
Я сделал следующие шаги на новом агенте:
- установить openssh-сервер
- создать пользователя с паролем, который я хочу использовать
- создать ssh-ключи
- аутентификация по паролю была включена по умолчанию в /etc/sshd/sshd_config
На контроллере jenkins я настроил узел на:
- запускать агенты через SSH
- иметь учетные данные, соответствующие настроенному пользователю в агенте jenkins
Я получаю следующую ошибку при запуске агента из jenkins-web-UI:
ОШИБКА: непредвиденная ошибка при попытке пройти аутентификацию в качестве jenkins-slave с учетными данными=some-ID-111d-222e-33c44fg7h556
java.io.IOException: Ошибка аутентификации по паролю.
в com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:404)
на com.trilead.ssh2.Connection.authenticateWithPassword(Connection.java:340)
на com.cloudbees.jenkins.plugins.sshcredentials.impl.TrileadSSHPasswordAuthenticator.doAuthenticate(TrileadSSHPasswordAuthenticator.java:115)
на com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.authenticate(SSHAuthenticator.java:431)
на com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.authenticate(SSHAuthenticator.java:468)
в hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:886)
на hudson.plugins.sshslaves.SSHLauncher$1.call(SSHLauncher.java:434)
на hudson.plugins.sshslaves.SSHLauncher$1.call(SSHLauncher.java:421)
в java.util.concurrent.FutureTask.run(FutureTask.java:266)
в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
на java.lang.Thread.run(Thread.java:748)
Причина: java.io.IOException: соединение закрыто.
в com.trilead.ssh2.auth.AuthenticationManager.deQueue(AuthenticationManager.java:72)
в com.trilead.ssh2.auth.AuthenticationManager.getNextMessage(AuthenticationManager.java:100)
на com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:379)
... еще 11
Причина: java.io.IOException: невозможно прочитать полный блок, достигнут EOF.
на com.trilead.ssh2.crypto.cipher.CipherInputStream.getBlock(CipherInputStream.java:81)
на com.trilead.ssh2.crypto.cipher.CipherInputStream.read(CipherInputStream.java:108)
на com.trilead.ssh2.transport.TransportConnection.receiveMessage(TransportConnection.java:232)
на com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:706)
на com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:502)
... 1 более
Любая идея, почему это не удается?
РЕДАКТИРОВАТЬ
Я нашел это под /etc/pam.d/sshd
есть линия требуется сеанс pam_nologin.so
. Когда я меняю это на по желанию
Я могу войти через ssh с пользователем без полномочий root.