Jenkins远程服务器上的SSH连接登录后立即关闭

47次阅读
没有评论

问题描述

在远程服务器上为Jenkins创建了一个用户,之前一直正常工作,但现在当他尝试使用SSH登录服务器时,连接在登录后立即关闭。这很奇怪,因为在托管Jenkins的网站上,一切似乎都正常,他可以使用Chrome登录,甚至成功构建。我的唯一问题是当我使用该用户jenkins在服务器上进行SSH时。当我断开连接时,我会在这里添加ssh -v日志:

debug1: client_input_channel_req: channel 0 rtype exit-signal reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
Last login: Tue Mar 12 09:21:23 2019 from 82.78.220.8
debug1: channel 0: free: client-session, nchannels 1
Connection to 145.239.84.136 closed.
Transferred: sent 2652, received 3604 bytes, in 0.5 seconds
Bytes per second: sent 5268.4, received 7159.7
debug1: Exit status -1

这是我在插入密码后得到的结果。
我还会发布sshd日志:

Accepted password for jenkins from 82.78.220.8 port 40872 ssh2
pam_unix(sshd:session): session opened for user jenkins by (uid=0)
Received disconnect from 82.78.220.8 port 40872:11: disconnected by user
Disconnected from 82.78.220.8 port 40872
pam_unix(sshd:session): session closed for user jenkins

我在passwd中有这个设置:

jenkins:x:113:118:Jenkins,,,:/var/lib/jenkins:/bin/bash

我必须补充说,我可以使用其他用户在服务器上进行SSH,一切正常。我还尝试从root用户切换到jenkins用户:这只会冻结我的终端,并打开类似于以下内容的东西:

jenkins@vps531680:/root$ root@vps531680:~# root@vps531680:~# logout

然后我会被断开连接。
我还尝试了这个sudo usermod -s /bin/bash jenkins

bash: /root/.bashrc: Permission denied
jenkins@vps531680:~$ Killed

奇怪的是,如果我只是重新启动服务器,在那之后的5-10分钟内,我的jenkins用户可以正常工作,但之后我会断开连接,再次无法进行SSH,只有在另一次重新启动之后的5-10分钟内才能进行SSH。任何建议将不胜感激!

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

检查Jenkins的主目录是否已创建。在远程服务器上,Jenkins用户的主目录应该是/home/jenkins。如果该目录不存在,可以手动创建它。

mkdir /home/jenkins

然后,将其所有权更改为Jenkins用户:

chown jenkins:jenkins /home/jenkins

方案2

如果方案1不起作用,您可以尝试以下步骤:
1. 确保Jenkins用户的Shell设置为/bin/bash。您可以使用以下命令更改Shell设置:

sudo usermod -s /bin/bash jenkins
  1. 检查Jenkins用户的权限。确保Jenkins用户具有适当的权限来访问所需的文件和目录。您可以使用以下命令更改Jenkins用户的权限:
sudo chown -R jenkins:jenkins /var/lib/jenkins
  1. 检查Jenkins用户的登录Shell配置。您可以编辑Jenkins用户的.bashrc文件,并确保没有任何权限问题。使用以下命令编辑文件:
sudo nano /var/lib/jenkins/.bashrc

如果您在编辑文件时遇到权限问题,请确保您具有足够的权限来编辑文件。
4. 重新启动SSH服务。在应用更改后,重新启动SSH服务以使更改生效:

sudo service ssh restart

如果问题仍然存在,请尝试重新启动服务器并等待5-10分钟,然后再次尝试SSH连接。如果问题仍然存在,请检查服务器的日志文件以获取更多详细信息,并考虑与系统管理员或Jenkins支持团队联系以获取进一步的帮助。

正文完