ฉันกำลังพยายามเพิ่มตัวแทนเจนกินส์ที่ใช้ Rocky Linux 8
ฉันจะกำหนดค่า jenkins-agent เพื่ออนุญาตการเชื่อมต่อ ssh จาก jenkins-controller ผ่านรหัสผ่านได้อย่างไร
ฉันทำตามขั้นตอนต่อไปนี้กับตัวแทนใหม่:
- ติดตั้ง opensh-server
- สร้างผู้ใช้ด้วยรหัสผ่านที่ฉันต้องการใช้
- สร้างคีย์ ssh
- การตรวจสอบรหัสผ่านเปิดใช้งานโดยค่าเริ่มต้นที่ /etc/sshd/sshd_config
บน jenkins-controller ฉันกำหนดค่าโหนดเป็น:
- เปิดตัวตัวแทนผ่าน SSH
- มีข้อมูลรับรองที่ตรงกับผู้ใช้ที่กำหนดค่าในตัวแทนเจนกินส์
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อเรียกใช้ตัวแทนจาก jenkins-web-UI:
ข้อผิดพลาด: ข้อผิดพลาดที่ไม่คาดคิดขณะพยายามรับรองความถูกต้องเป็นเจนกินส์ทาสด้วยข้อมูลประจำตัว = 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 ด้วยผู้ใช้ที่ไม่ใช่รูท