user
公開鍵認証で SSH を実行しようとすると、次のエラーが表示されるホスト上の特定のユーザー (この投稿では次のように呼びます) がいます。
PTY allocation request failed on channel 0
Direct login access is disallowed
を使用すると最初のエラーを軽減できますssh user@host "/bin/bash -i"
が、2 番目のエラーを回避することはできません。
私が試したこと:
- できます
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
シェルに設定した内容を表示します。/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 接続できるようになりました。