Come posso creare un utente SFTP sulla mia istanza Lightsail?
Desidero creare un utente SFTP sulla mia istanza Amazon Lightsail. In che modo posso farlo?
Risoluzione
Nota: nelle seguenti fasi viene creato un utente SFTP che ha accesso all'ambiente chroot (jail chroot) senza accesso SSH. L'utente SFTP non può accedere alle directory esterne all'ambiente chroot o alla directory. Quindi, la directory chroot diventa la directory root per l'utente.
1. Crea un gruppo per gli utenti SFTP. Il gruppo aiuta a gestire molti utenti SFTP diversi. In questo esempio, il nome del gruppo è sftp_group. È possibile modificare il nome in un nome di gruppo di tua scelta.
sudo groupadd sftp_group
2. Crea un utente sull'istanza con una directory home. Questo utente esegue solo processi SFTP e non dispone di una shell di accesso SSH. Nell'esempio seguente, sostituisci sftp_user con un nome utente a tua scelta.
sudo useradd -g sftp_group -m -d /home/sftp_user -s /sbin/nologin sftp_user
3. L'utente può autenticarsi in diversi modi quando si connette al server tramite SFTP. Nell'esempio seguente viene utilizzata una password e un'autenticazione basata su chiave SSH.
Autenticazione password
Per richiedere l'autenticazione tramite password, crea una password utilizzando il seguente comando:
sudo passwd sftp_user
Autenticazione basata su chiave SSH
Se utilizzi l'autenticazione basata su chiave SSH, dovrai creare i file SSH per l'utente e quindi aggiungere la chiave pubblica ai file. Per fare ciò:
Nella directory principale dell'utente, crea una cartella.ssh e un file authorized_keys:
sudo mkdir /home/sftp_user/.ssh sudo touch /home/sftp_user/.ssh/authorized_keys
Aggiungi la chiave pubblica SSH che desideri utilizzare al file /home/sftp_user/.ssh/authorized_keys. Per maggiori informazioni, consulta Configurazione di SSH per le istanze Lightsail basate su Linux/UNIX.
Emetti i seguenti comandi per modificare la proprietà e le autorizzazioni della directory principale dell'utente:
sudo chown sftp_user:sftp_group /home/sftp_user/.ssh -R sudo chown root:sftp_group /home/sftp_user/ sudo chmod 755 /home/sftp_user/ sudo chmod 700 /home/sftp_user/.ssh/ sudo chmod 600 /home/sftp_user/.ssh/authorized_keys
L'esempio precedente utilizza l’autorizzazione 755 nella directory /home/sftp_user e modifica la proprietà dell'utente root. Questo perché la directory verrà utilizzata come directory chroot. Tieni presente che tutti i componenti del percorso devono essere directory di proprietà di root che non sono scrivibili da nessun altro utente o gruppo.
4. Modifica il file /etc/ssh/sshd_config procedendo come segue:
Modifica la riga Subsystem sftp commentando la riga Subsystem sftp /usr/libexec/openssh/sftp-server:
# Subsystem sftp /usr/libexec/openssh/sftp-server
Sostituisci la riga precedente con:
Subsystem sftp internal-sftp
Aggiungi le direttive per limitare l'accesso degli utenti SFTP. Queste direttive devono essere aggiunte nella parte inferiore del file:
Match Group sftp_group ChrootDirectory /home/%u ForceCommand internal-sftp
Nell'esempio precedente, la direttiva ChrootDirectory viene utilizzata per specificare la directory principale per gli utenti SFTP (jail chroot). L’utente appartenente al sftp_group utilizza il percorso /home/ %u come directory principale. I caratteri %u rappresentano l'utente. Puoi modificare la directory principale per l'utente.
La direttiva ForceCommand internal-sftp impone l'utilizzo di un server SFTP in corso.
Se si utilizza l'autenticazione tramite password, la direttiva PasswordAuthentication si trova nel file /etc/ssh/sshd_config, quindi assicurati che sia impostata su yes.
5. Creare le directory chroot che devono essere utilizzate dall'utente. Sostituisci il nome della directory sftp_user e uploads con i tuoi nomi preferiti.
sudo mkdir /home/sftp_user/uploads
Modifica la proprietà dei file:
sudo chown sftp_user:sftp_group /home/sftp_user/uploads
6. Verifica che le autorizzazioni di directory siano quelle illustrate nell'esempio seguente:
ls -ld /home drwxr-xr-x 3 root root 23 Oct 6 15:17 /home ls -ld /home/sftp_user drwxr-xr-x 3 root sftp_group 21 Oct 6 15:17 /home/sftp_user ls -ld /home/sftp_user/uploads/ drwxr-xr-x 2 sftp_user sftp_group 6 Oct 6 15:17 /home/sftp_user/uploads/
7. Riavvia il servizio sshd:
sudo systemctl restart sshd
8. Connettiti all’istanza tramite sftp:
Autenticazione password
# sftp sftp_user@example.com sftp_user@example.com's password:
Autenticazione basata su chiave SSH
# sftp -i key.pem sftp_user@example.com

Contenuto pertinente
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 6 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa