Richten Sie sftp so ein, dass es ein Kennwort verwendet, ssh jedoch kein Kennwort

15

Ist es möglich, mit openssh einen Benutzer auf Ubuntu einzurichten, damit ssh nicht die Kennwortauthentifizierung verwendet, sondern sftp?

Ich gehe davon aus, dass Benutzer bei einem Wechsel /etc/ssh/ssh_configzu PasswordAuthentication yesssh und sftp die Möglichkeit haben, sich mit Passwörtern anzumelden.

Bearbeiten: Mein Zweck hier ist es, einige Benutzer sftp mit einem Passwort anstelle einer Schlüsseldatei zu lassen. Ich möchte jedoch nicht, dass sich SSH-Benutzer mit einem Kennwort anmelden können, sondern dass sie eine Schlüsseldatei verwenden müssen. Wenn es hilft, brauche ich nicht die SFTP-Benutzer, um sich anmelden zu können, sie müssen nur SFTP tun.

dar
quelle

Antworten:

26

Soweit ich weiß, gibt es (zumindest für dieses spezielle Problem) zwei unterschiedliche Benutzergruppen, eine, die sich über SSH anmelden und eine interaktive Shell (nennen wir die Gruppe ssh) erhalten kann, und eine, die sich über SFTP anmelden und nur ein SFTP erhalten kann Shell (nennen wir die Gruppe sftp).

Erstellen Sie nun die Gruppen sshund sftpauf Ihrem System mit groupadd, setzen Sie die jeweiligen Benutzer in die Gruppen ( gpasswd -a $USERNAME $GROUPNAME) und fügen Sie die folgenden Zeilen am Ende ( das ist wichtig! ) Ihres sshd_configStandortes an /etc/ssh/sshd_config:

Match Group sftp
  PasswordAuthentication yes
  # Further directives for users in the "sftp" group

Match Group ssh
  PasswordAuthentication no
  # Further directives for users in the "ssh" group

Lesen Sie mehr über die MatchDirektive in sshd_config (5) und über die erlaubten Muster in ssh_config (5) .

Sie müssen auch den sshProzess neu starten , damit dies wirksam wird:

sudo /etc/init.d/ssh restart

joschi
quelle
6
Dies ist nicht gut dokumentiert, aber es wird nur eine Match-Direktive verwendet. Sie sollten die spezifischste Direktive an die Spitze setzen. Wenn Sie sftp zuerst auflisten, wird einem Benutzer, der sich in beiden Gruppen befindet, PasswordAuthentication gewährt.
Tobu
Vielen Dank! sshMeine Ubuntu-Boxen haben bereits eine Gruppe, daher muss ich nur sftpdie SFTP-Benutzer hinzufügen und in diese Gruppe aufnehmen. Ich werde Ihre Antwort mit der Verwendung scponlyvon kombinieren, um zu verhindern , dass sich die SFTP-Benutzer anmelden.
Dar
2
Wenn PasswordAuthenticationgesetzt , um nodiese noch Arbeit weiter oben wird? Hat Match Groupaußer Kraft setzen es für SFTP - Benutzer? Weil ich das habe und es nicht funktioniert. Ich kann mit Schlüssel ssh in, aber nicht als SFTP-Benutzer.
Alphadogg
0

Nein, und ich verstehe nicht, wie dies die Sicherheit verbessern würde. Worum geht es also?

authorized_keys kann verschiedene Befehle für verschiedene Schlüssel zulassen, wenn Sie danach suchen. Andernfalls haben Sie die Möglichkeit, mehrere Konten zu erstellen und acls oder sudo zu verwenden.

Tobu
quelle
Ich versuche nicht, die Sicherheit zu verbessern. Ich versuche, es einigen Benutzern zu erleichtern, ein Kennwort anstelle einer Schlüsseldatei für den SFTP-Zugriff zu verwenden. Ich möchte jedoch nicht, dass jemand ein Passwort für den SSH-Zugriff verwendet.
Dar
@dar OK; dann andere Konten. Wenn sie dasselbe Konto hätten, könnte jemand, der das sftp-Kennwort kennt, eine Profildatei (.ssh / rc, .profile, .bashrc…) überschreiben und die gleichen Berechtigungen erhalten wie jemand, der den privaten Schlüssel kennt.
Tobu
0

Nimm hier einen Stich in die Dunkelheit, aber vielleicht findest du diesen Thread interessant.

Ist es fair, meine SFTP-Benutzer in ihr Home-Verzeichnis zu bringen?

Tyler K
quelle
Ich sehe dort nichts über PasswordAuthentication, korrigiere mich, wenn ich falsch liege.
Dar
Nein, du hast recht. Es war nicht klar, was Sie mit SFTP vs SSH machen wollten. Aus dem anderen Kommentar geht hervor, dass Benutzer ein Kennwort für SFTP, jedoch nicht für SSH verwenden sollen. Warum?
Tyler K
Diese Benutzer, die sftp verwenden müssen, empfinden Schlüsseldateien als schwierig, verstehen jedoch, wie Kennwörter eingegeben werden. Es läuft auf ein Problem der Benutzererfahrung für SFTP hinaus. Aber ich möchte die Angriffsfläche minimieren, indem ich Passwörter aus dem ssh-Mix heraushalte.
Dar
SFTP öffnet zuerst einen SSH-Tunnel und überträgt dann Dateien per FTP. Man kann sich nicht wirklich scheiden lassen. Ich schätze, Sie könnten ein paar ACLs einrichten, aber das macht eigentlich keinen Sinn.
Tyler K