非root的linux用户SSH远程登录另一台机器提示Permission denied, please try again.的原因及解决办法

时间:2024-04-05 10:22:29

  最近在进行airflow发布任务时遇到的问题,一台机器远程登录另一台机器时(ssh ip -l 用户名 -p 端口号),一直提示Permission denied, please try again,大体上可能有以下几个原因,总结一下:

1.密码输入错误。

   我相信大部分人已经排除掉了这个可能性,当然了博主也是如此..

2.如果用户是root用户,查看一下服务端SSH服务是否配置了禁止root用户登录策略。

    方法:(1)查看远程服务器的/etc/ssh/sshd_config文件

               (2)若出现: PermitRootLogin no ,将参数值设置为 yes,或者整个删除或注释(在最开头添加 # 号)

               (3)重启sshd服务:service sshd restart   或    systemctl restart sshd 。

3.查看/etc/ssh/sshd_config文件

看是否有类似于  AllowUsers 用户名@IP 这种配置,如果没有需要增加,如果多个用户,则用空格隔开 ,然后保存文件,重启sshd服务

4.之前是否出现过密码多次输入错误的情况,linux一般输入次数大于三次该用户可能会被锁

这是基于linux的安全策略。

使用如下命令判断程序是否使用了PAM: [email protected]~ # ldd /usr/bin/passwd | grep libpam

libpam_misc.so.0 => /lib64/libpam_misc.so.0 (0x00007fb74f748000)

libpam.so.0 => /lib64/libpam.so.0 (0x00007fb74eb45000)

如看到有类似的输出,说明该程序使用了PAM,没有输出,则没有使用。

pam_tally2模块用于某些数对系统进行失败的ssh登录尝试后锁定用户帐户。 此模块保留已尝试访问的计数和过多的失败尝试。

pam_tally2模块有两个部分,一个是pam_tally2.so,另一个是pam_tally2。 它是基于PAM模块上,并且可以被用于检查和调节计数器文件。 它可以显示用户登录尝试次数,单独设置计数,解锁所有用户计数。

若使用了pam,可以尝试使用如下命令来解锁:sudo pam_tally2 -u 用户名 -r

5.查看用户是否过期

chage -l 用户名

若account expires 显示是过期日期,则需要修改用户有效期,具体方法还需研究。下图是chage命令具体用法

非root的linux用户SSH远程登录另一台机器提示Permission denied, please try again.的原因及解决办法