Imposta sftp per usare la password ma ssh per non usare la password


15

È possibile configurare un utente su Ubuntu con openssh in modo che ssh non usi l'autenticazione con password ma sftp lo fa?

Suppongo che se cambio /etc/ssh/ssh_configa fare PasswordAuthentication yesciò è possibile per gli utenti utilizzare le password per accedere sia con ssh che sftp.

Modifica: il mio scopo qui è quello di consentire ad alcuni utenti di sftp con una password anziché un file di chiavi. Ma non voglio che gli utenti ssh possano accedere con una password, voglio che debbano usare un file di chiavi. Se aiuta, non ho bisogno che gli utenti sftp siano in grado di accedere, devono solo fare sftp.

Risposte:


26

A quanto ho capito, hai (almeno per questo particolare problema) due gruppi distinti di utenti, uno in grado di accedere tramite SSH e ottenere una shell interattiva (chiamiamo il gruppo ssh) e uno in grado di accedere tramite SFTP e ottenere solo un SFTP shell (chiamiamo il gruppo sftp).

Ora crea i gruppi sshe sftpsul tuo sistema con groupadd, inserisci i rispettivi utenti nei gruppi ( gpasswd -a $USERNAME $GROUPNAME) e aggiungi le seguenti righe alla fine ( questo è importante! ) Del tuo sshd_configsito in /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

Leggi la Matchdirettiva in sshd_config (5) e gli schemi consentiti in ssh_config (5) .

Dovrai anche riavviare il sshprocesso affinché ciò abbia effetto:

sudo /etc/init.d/ssh restart


6
Questo non è ben documentato, ma verrà utilizzata solo una direttiva Match; dovresti mettere in primo piano la direttiva più specifica. Se si elenca prima sftp, a un utente che si trova in entrambi i gruppi sarà consentito PasswordAuthentication.
Tobu,

Grazie! C'è già un sshgruppo nelle mie caselle Ubuntu, quindi ho solo bisogno di aggiungere sftpe inserire gli utenti sftp in quel gruppo. Combinerò la tua risposta con l'utilizzo scponlyper impedire agli utenti sftp di accedere.
dar

2
Se PasswordAuthenticationè impostato su noulteriormente, funzionerà ancora? Lo Match Groupsovrascrive per gli utenti sftp? Perché è quello che ho e non funziona. Posso usare ssh con key, ma non come utente sftp.
alphadogg,

0

No, e non vedo come questo migliorerebbe la sicurezza, quindi quale sarebbe il punto?

authorized_keys può consentire comandi diversi per chiavi diverse, se è quello che stai cercando. Altrimenti, hai la possibilità di creare diversi account e usare acls o sudo.


Non sto cercando di migliorare la sicurezza. Sto cercando di rendere più semplice l'uso di una password anziché di un file di chiavi per l'accesso sftp ad alcuni utenti. Tuttavia, non voglio che nessuno usi una password per l'accesso a ssh.
dar,

@dar OK; account diversi quindi. Se fossero lo stesso account, qualcuno che conosceva la password sftp potrebbe sovrascrivere alcuni file di profilo (.ssh / rc, .profile, .bashrc ...) e ottenere gli stessi privilegi di qualcuno che conosce la chiave privata.
Tobu,

0

Prendendo una pugnalata nel buio qui, ma potresti trovare interessante questa discussione.

È giusto imprigionare i miei utenti SFTP nella loro home directory?


Non vedo nulla là dentro PasswordAuthentication, correggimi se sbaglio.
dar,

No, hai ragione. Non era chiaro cosa volevi fare con SFTP vs SSH. Dall'altro commento vedo che desideri che gli utenti utilizzino una password per SFTP ma non per SSH. Perché?
Tyler K,

Perché questi utenti che hanno bisogno di usare sftp trovano difficili i file key, ma capiscono come digitare le password. Si riduce a un problema di esperienza utente per sftp. Ma voglio ridurre al minimo la superficie di attacco mantenendo le password fuori dal mix ssh.
dar,

SFTP funziona aprendo prima un tunnel ssh, quindi trasmettendo i file via FTP. Non puoi davvero divorziare dai due. Immagino che potresti istituire alcuni ACL, ma non ha davvero senso.
Tyler K,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.