问题描述:公司某台服务器搭建了jumpsever服务,在使用其登陆其他服务器时,windows下使用xshell连接一切正常,Linux下终端1-2min不适用终端就会卡死,无法输入内容,只能强行关闭。
问题分析:首先考虑是否为服务设置的超时产生效果,查看代码jlog/log_api.py:
def kill_invalid_connection():
unfinished_logs = Log.objects.filter(is_finished=False)
now = datetime.datetime.now()
now_timestamp = int(time.mktime(now.timetuple()))
for log in unfinished_logs:
try:
log_file_mtime = int(os.stat('%s.log' % log.log_path).st_mtime)
except OSError:
log_file_mtime = 0
if (now_timestamp - log_file_mtime) > 3600:
if log.login_type == 'ssh':
try:
os.kill(int(log.pid), 9)
except OSError:
pass
elif (now - log.start_time).days < 1:
continue
log.is_finished = True
log.end_time = now
log.save()
logger.warn('kill log %s' % log.log_path)发现设置时间并不短,考虑到win和Linux下的差异性,在Linux下测试:同时进行1.直接ssh登录jumpserver服务器2.通过跳板机登录其中一台服务器,发现两种情况都在一分多的时候卡死,至此判断是ssh设置的问题
问题解决:修改服务器/etc/ssh/sshd_config文件
修改参数:
ClientAliveInterval 60
ClientAliveCountMax 1
使得服务器每隔60秒向客户端发送一次请求,从而保持连接。问题解决
当通过jumpserver在Linux环境下使用SSH连接服务器时,遇到1-2分钟无操作后终端卡死的问题。经过分析,发现可能由超时设置引起。通过检查`jlog/log_api.py`代码并修改服务器上的`/etc/ssh/sshd_config`配置文件,调整相关参数,解决了此问题。
1817

被折叠的 条评论
为什么被折叠?



