SSH连接服务器异常排错

问题:
ssh登录服务器慢,超时

排错:
ssh -vvv hostip -l username -p port
定位卡在哪个位置,根据信息进一步排错,例如:

debug1:pledge: network     #出现输入密码后在这个位置卡几秒或者十几秒

查看系统登录日志

tail -fn 100 /var/log/auth.log		#Ubuntu的是/var/log/auth.log
tail -fn 100 /var/log/secure.log		#CentOS的是/var/log/secure.log

#可以重新ssh登录一下,出现如下报错
sshd[20026]: pam_unix(sshd:session): session opened for user jack by (uid=0)
sshd[20026]: pam_systemd(sshd:session): Failed to create session: Connection timed out
dbus-daemon[1798]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)
systemd-logind[1839]: Failed to start session scope session-10539.scope: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)

解决:

systemctl restart systemd-logind
systemctl restart dbus

当然有可能重启不成功,这个时候我们就需要重启机器。
如果不能重启机器还有另外一种方式,如下:

vim /etc/pam.d/common-session		#注释掉session optional pam_systemd.so
# session optional pam_systemd.so

关于systemd-logind
systemd-logind是一个管理用户登录的系统服务,职责如下:
1、持续跟踪用户的会话、进程、空闲状态。 这将在 user.slice 之下,为每个用户分配一个 slice 单元、为每个用户的当前会话分配一个 scope 单元。 同时,针对每个已登录的用户,将会启动一个专属的服务管理器(作为user@.service 模版的一个实例)。
2、生成并管理"session ID"。如果启用了审计并且已经为一个会话设置了审计"session ID", 那么该ID也将同时被用作"session ID", 否则将会使用一个独立的会话计数器(也就是独立生成一个"session ID")。
3、为用户的特权操作(例如关闭或休眠系统) 提供基于 polkit 的认证与授权
4、为应用程序实现 阻止关闭/休眠系统的逻辑
5、处理 硬件关机/休眠按钮的动作
6、多席位(Multi-Seat)管理
7、会话切换管理
8、管理 用户对设备的访问
9、在启动虚拟终端时 自动启动文本登录程序(agetty), 并管理用户的运行时目录。

ssh登录时,systemd-logind负责为这个登录用户创建一个Session ID,并进行管理。上面的报错主要就是阻塞在了这里。
值得一提的是systemd-login的用户会话是通过PAM模块注册的,而PAM模块pam_systemd中有一个desktop选项,因此,如果你的服务器是桌面版的,重启systemd-logind,这个用户桌面上的一切程序都会被关闭(包括桌面上的开启的终端与程序)

参考:
博主littleRpl—>ssh登录阻塞在pledge: network的解决方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值