Erlauben von SFTP und SSH mit chroot-Verzeichnis

Erlauben von SFTP und SSH mit chroot-Verzeichnis

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, /libum sicherzustellen, dass keine Befehle fehlten, die den Fehler verursachen könnten. Ein Blick auf /var/log/auth.logergab keine Ergebnisse, da das einzige Protokoll war, dass die Verbindung vom Benutzer geschlossen wurde, einschließlich, als ich einstellte LogLevel Debug2. /etc/ssh/sshd_configWenn 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 jailkitTool 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/passwdgeä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_keysDatei

verwandte Informationen