![SSH 拒绝允许特定用户直接通过 ssh 登录](https://linux22.com/image/776629/SSH%20%E6%8B%92%E7%BB%9D%E5%85%81%E8%AE%B8%E7%89%B9%E5%AE%9A%E7%94%A8%E6%88%B7%E7%9B%B4%E6%8E%A5%E9%80%9A%E8%BF%87%20ssh%20%E7%99%BB%E5%BD%95.png)
我在一台主机上有一个特定的用户(让我们user
在整篇文章中称呼他们),当尝试通过公钥认证进行 ssh 时显示以下错误:
PTY allocation request failed on channel 0
Direct login access is disallowed
我可以通过使用来缓解第一个错误ssh user@host "/bin/bash -i"
,但无法解决第二个错误。
我尝试过的事情:
- 我可以
sudo -s
(或者sudo -i
直接以主机上的 root 用户身份) - 用户被锁定(
passwd -l user
),我已解锁并为该用户分配密码。同样的问题。但是,su - user
在帐户解锁并应用密码后,我可以像任何其他用户一样操作。 - 我检查了
/etc/ssh/sshd_config
服务器,没有AllowUsers
、AllowGroups
、DenyUsers
、的条目DenyGroups
。 - 我能够以 root 身份直接进行 ssh,没有问题。
- 我创建了一个新用户,并且能够直接 ssh 连接到他们。
- 确认 ssh 密钥选择和 authorized_keys 设置正确,但是我不认为这是一个关键问题。
/etc/passwd
显示用户已/bin/bash
为他们的 shell 设置。/etc/security/access.conf
已完全注释掉且未设置任何设置。- 多次重启 sshd。
- 没有
/etc/login.blocks
文件。 /var/log/secure
,,/var/log/messages
也journalctl -fu sshd
只显示Session open
然后Session closed for user user
ssh user@host -vvvvvvv
只是显示了Direct login access is disallowed
- 重新启动了主机。
注意:这是一个尚未启用订阅的 rhel 系统。
怎么回事?为什么我无法访问此
答案1
搞清楚了。这是某人编写的一个限制主机访问的脚本。任何人通过 ssh 连接到用户后,该脚本都会运行。
这是在user
中实现的~/.ssh/authorized_keys
。
以下是文件中显示的行:
command="/home/user/script/that/was/causing/problems.sh", ssh-rsa ABC123hugepubliccipher==
删除该command=
部分后,用户就可以再次通过 ssh 登录。