
Ich versuche, einen Benutzer mit SFTP-Zugriff und eingeschränktem SSH-Zugriff einzurichten. Daher habe ich den Benutzer chrootet und ihn dann im Wesentlichen genau wie indieses Tutorial. Obwohl ich mich erfolgreich per SSH mit dem Server verbinden kann, wird beim Verbindungsversuch über eine SFTP-Verbindung lediglich „Verbindung fehlgeschlagen“ angezeigt.
Recherche und Lösungsversuche
Ich habe versucht, nach etwas zu suchen, das erklären kann, wie das geht, aber ich konnte nur findendieses Themadie keine Antworten enthielt. Außerdem konnte ich online keine Artikel finden, die zeigten, wie dies gemacht werden könnte.
Ich habe auch versucht, den gesamten Ordner in das Chroot-Verzeichnis zu kopieren /bin
, /lib
um sicherzustellen, dass keine Befehle fehlten, die den Fehler verursachen könnten. Ein Blick auf /var/log/auth.log
ergab keine Ergebnisse, da das einzige Protokoll war, dass die Verbindung vom Benutzer geschlossen wurde, einschließlich, als ich einstellte LogLevel Debug2
. /etc/ssh/sshd_config
Wenn ich versuche, eine Verbindung über eine SCP-Verbindung in WinSCP herzustellen, kann ich die Dateien sehen, aber ich kann nichts auf mein lokales Laufwerk kopieren oder umgekehrt.
SSHD-Konfigurationsdatei (relevanter Abschnitt):
Match User test_user
ChrootDirectory /home/test_user
Antwort1
Schließlich habe ich das jailkit
Tool gefunden, mit dem die Inhaftierung von Benutzern automatisiert werden kann, anstatt dies manuell durchzuführen, wie ich es ursprünglich versucht hatte.
Um das Chroot-Verzeichnis einzurichten, habe ich die folgenden Schritte ausgeführt
Installation (auf Ubuntu) Die Installation aus der Quelle finden SieHier
sudo apt install jailkit
Verzeichnis-Setup
Eine Liste der verschiedenen Pakete, auf die Zugriff gewährt werden kann, finden Sie unter /etc/jailkit/jk_init.ini
. Ich habe Git auch auf diese Weise installiert, nachdem ich es eingerichtet hatte
sudo chown root:root /srv/test_user
sudo jk_init -v /srv/test_user netutils basicshell jk_lsh openvpn ssh sftp
Allgemeines Format unten
sudo chown root:root <chroot_directory>
sudo jk_init -v <chroot_directory> <packages>
Inhaftierung des Benutzers
sudo jk_jailuser -m -j /srv/test_user test_user
Shell wechseln
Schließlich sollte die in angegebene Shell von in <chroot_directory>/etc/passwd
geändert werden . Beachten Sie, dass nur die Einträge für test_user, root und möglicherweise einen weiteren Login vorhanden sein sollten./usr/sbin/jk_lsh
/bin/bash
Von dort aus können Sie sich über SSH oder SFTP/SCP anmelden und wie erwartet auf alles zugreifen. Beachten Sie, dass Sie für die Anmeldung über einen öffentlichen Schlüssel die ~/.ssh/authorized_keys
Datei