SSH は特定のユーザーが SSH 経由で直接ログインすることを拒否します

SSH は特定のユーザーが SSH 経由で直接ログインすることを拒否します

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のエントリはありませんでしDenyUsersDenyGroups
  • 問題なく 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 openSession 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 接続できるようになりました。

関連情報