Chroot-SSH-Benutzer zum Home-Ordner führt zu einer abgelehnten Verbindung

Chroot-SSH-Benutzer zum Home-Ordner führt zu einer abgelehnten Verbindung

Ich versuche, jemandem SSH-Zugriff auf einen (Ubuntu 14.04)-Server zu gewähren, den ich habe, aber ich möchte ihn auf seinen eigenen Home-Ordner beschränken. Ich versuche also,dieses Tutorial.

Ich habe zunächst einen Benutzer ( sudo adduser jailuser) erstellt, der die Anmeldung als Jailuser ermöglichte. Dann habe ich versucht, den Benutzer zu jailieren, indem ich Folgendes hinzugefügt habe /etc/ssh/sshd_config(und SSH neu gestartet):

Subsystem     sftp   internal-sftp
Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

Anschließend habe ich die Gruppe sftp erstellt:

sudo groupadd sftp

und führte die folgenden Befehle aus, um den Jailuser zu ändern:

sudo usermod -G sftp jailuser
sudo usermod -s /bin/false jailuser
sudo chown root:root /home/jailuser
sudo chmod 0755 /home/jailuser

Die Folge ist, dass ich mich nicht mehr anmelden kann: ssh: connect to host xx.xxx.xx.223 port 22: Connection refused.

Da ich ein Neuling in Sachen Serververwaltung bin, bin ich hier verloren. Weiß jemand, was ich falsch mache? Alle Tipps/Tricks sind willkommen!

Antwort1

Ich hatte dieses Problem und die Lösung bestand darin, „UsePAM yes“ über der Strophe „Subsystem sftp internal-sftp“ zu platzieren. Starten Sie ssh neu und es funktionierte sofort.

Antwort2

Ich sehe nichts offensichtlich Falsches an den sshd_configZeilen, die Sie gepostet haben. Es scheint, dass es hier drei Möglichkeiten gibt:

  1. Es ist nichts wirklich falsch, aber sshdes muss damit begonnen werden.
  2. sshdkann ausgeführt werden, überwacht jedoch nicht die richtige IP-Adresse oder den richtigen Port.
  3. Etwas verhindert sshdden Start.

Für alles Folgende müssen Sie sich rootauf dem SSH-Server-Host befinden.

Führen Sie für (1) etwas wie „ps -fe | grep sshd“ aus, um zu sehen, ob sshdes läuft oder nicht. Wenn nicht, versuchen Sie, den SSH-Server zu starten. Unter Ubuntu würden Sie Folgendes ausführen:

/etc/init.d/ssh restart

Wenn sshdläuft, fahren Sie mit (2) fort. Überprüfen Sie, sshd_configobListenAddressoderHafenAnweisungen. Diese steuern, an welcher IP-Adresse und an welchem ​​Port der Server auf Verbindungen wartet. In den meisten Fällen lassen Sie diese auskommentiert (um die Standardwerte zu verwenden) oder setzen sie auf 0.0.0.0 bzw. 22.

Wenn Sie versucht haben, es zu starten sshd, es aber nicht ausgeführt wird, überprüfen Sie zunächst die Protokolldateien /var/logauf Nachrichten von sshd. Diese können Aufschluss über das Problem geben. Wenn das nicht klappt, können Sie es sshdinteraktiv mit Debugging ausführen:

/usr/sbin/sshd -ddd            # Listen on the default port 22
/usr/sbin/sshd -ddd -p 1022    # Listen on port 1022

sshdbleibt mit Ihrem Terminal verbunden und gibt eine Reihe von Debuginformationen aus. Wenn es aus irgendeinem Grund nicht weiterlaufen kann, sollte es Ihnen den Grund dafür mitteilen.

verwandte Informationen