Ich habe einen bestimmten Benutzer (wir nennen ihn user
in diesem Beitrag einzeln) auf einem Host, der beim Versuch, per SSH über die Authentifizierung mit öffentlichem Schlüssel zu kommunizieren, die folgenden Fehler anzeigt:
PTY allocation request failed on channel 0
Direct login access is disallowed
Den ersten Fehler kann ich durch die Verwendung abmildern ssh user@host "/bin/bash -i"
, den zweiten Fehler kann ich jedoch nicht beheben.
Dinge, die ich versucht habe:
- Ich kann
sudo -s
(odersudo -i
den Benutzer als Root direkt auf dem Host verwenden. - Der Benutzer ist gesperrt (
passwd -l user
), ich habe ihn entsperrt und ihm ein Passwort zugewiesen. Dasselbe Problem. Ich kann mich jedochsu - user
als jeder andere Benutzer anmelden, nachdem das Konto entsperrt und ein Passwort zugewiesen wurde. - Ich habe
/etc/ssh/sshd_config
auf dem Server nachgesehen. Keine Einträge fürAllowUsers
,AllowGroups
,DenyUsers
,DenyGroups
. - Ich kann problemlos direkt als Root eine SSH-Verbindung herstellen.
- Ich habe einen neuen Benutzer erstellt und kann auch direkt per SSH auf ihn zugreifen.
- Bestätigte SSH-Schlüsselauswahl und autorisierte Schlüssel sind richtig eingestellt, ich glaube jedoch nicht, dass dies ein Hauptproblem ist.
/etc/passwd
zeigt die Einstellungen des Benutzers/bin/bash
für seine Shell an./etc/security/access.conf
ist vollständig auskommentiert und es sind keine Einstellungen festgelegt.- sshd mehrmals neu gestartet.
- Es ist keine
/etc/login.blocks
Datei vorhanden. /var/log/secure
,/var/log/messages
, noch nur dannjournalctl -fu sshd
zeigenSession open
Session closed for user user
ssh user@host -vvvvvvv
zeigt nur dieDirect login access is disallowed
- den Host neu gestartet.
Hinweis: Dies ist ein Rhel-System, bei dem die Abonnements noch nicht aktiviert sind.
Was ist los? Warum kann ich nicht darauf zugreifen?
Antwort1
Habe es herausgefunden. Es war ein Skript, das jemand geschrieben hatte, um den Zugriff auf den Host einzuschränken. Das Skript wurde ausgeführt, nachdem sich jemand per SSH mit dem Benutzer verbunden hatte.
Dies wurde in user
's implementiert ~/.ssh/authorized_keys
.
Dies ist die Zeile, die in der Datei angezeigt wurde:
command="/home/user/script/that/was/causing/problems.sh", ssh-rsa ABC123hugepubliccipher==
Nach dem Entfernen des command=
Abschnitts konnten sich Benutzer wieder per SSH anmelden.