
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_config
Zeilen, die Sie gepostet haben. Es scheint, dass es hier drei Möglichkeiten gibt:
- Es ist nichts wirklich falsch, aber
sshd
es muss damit begonnen werden. sshd
kann ausgeführt werden, überwacht jedoch nicht die richtige IP-Adresse oder den richtigen Port.- Etwas verhindert
sshd
den Start.
Für alles Folgende müssen Sie sich root
auf dem SSH-Server-Host befinden.
Führen Sie für (1) etwas wie „ps -fe | grep sshd“ aus, um zu sehen, ob sshd
es 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 sshd
läuft, fahren Sie mit (2) fort. Überprüfen Sie, sshd_config
obListenAddressoderHafenAnweisungen. 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/log
auf Nachrichten von sshd
. Diese können Aufschluss über das Problem geben. Wenn das nicht klappt, können Sie es sshd
interaktiv mit Debugging ausführen:
/usr/sbin/sshd -ddd # Listen on the default port 22
/usr/sbin/sshd -ddd -p 1022 # Listen on port 1022
sshd
bleibt 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.