Come faccio a configurare un utente sftp per accedere con una password a un server Ubuntu EC2?


14

Ho un server Ubuntu in esecuzione su un'istanza EC2. Per accedere a quel server uso un file di certificato senza password.

Ho installato e configurato vsftpd e creato un utente (chiamiamolo "testuser") per il quale ho impostato un terminale / bin / false ssh in modo che possa connettersi solo tramite sftp e caricare / accedere ai file a casa sua directory.

Tuttavia, quando provo a connettermi al server dal mio computer, in esecuzione

sftp testuser@my-ec2-server

ottengo

Autorizzazione negata (chiave pubblica).
Connessione chiusa

messaggi quindi non riesco ad accedere.

Come posso rimuovere il requisito di certificato solo per questo utente (nel senso che l'utente "ubuntu" dovrà comunque usare il file del certificato per accedere via ssh), così i normali client sftp saranno in grado di connettersi usando un nome utente e una password?

Grazie.

PS Usando Ubuntu Server 10.10 AMI ufficiale da canonico, 64 bit su una microistanza.

Risposte:


10

Per realizzare ciò che desideri, devi fare due cose diverse

  1. Cambia sshd config per accettare le password

Devo dire innanzitutto che è una cattiva idea farlo, preferirei generare un certificato per il tuo utente piuttosto che attivare le password, tuttavia, se vuoi farlo, modifica /etc/ssh/sshd_confige modifica o rimuovi il commento in modo da mostrarlo PasswordAuthentication yes. Fatto ciò, riavvia sshdservice ssh restart

  1. Consenti agli utenti solo FTP utilizzando sftp e non avere la shell

Per confermare che è necessario installare rsh (shell limitata) e cambiare la shell dell'utente in essa chsh username


Voglio solo che questo specifico utente (testuser) che avrà solo accesso sftp, utilizzi una password anziché un certificato. La parte di non consentire a quell'utente di accedere tramite ssh, l'ho già fatto definendo il suo tipo bash come / bin / false
Doron,

1
Doron, non sarai in grado di consentire solo un utente tramite passwd, o autorizzi la password per tutti o per nessuno. Inoltre /bin/falsenon consentirà connessioni sftp (qualsiasi connessione ssh necessita di una shell valida, ecco dove rsh fa il trucco)
lynxman,

1
Questo non ha funzionato per me su Ubuntu EC2, non sono sicuro di quale ulteriore passo mi manchi, la porta 22 è aperta
Doug Molineux,

Vedi serverfault.com/questions/154957/… per configurare solo l'utente sftp con una password ...
Raman

-1

Ecco una guida passo passo per consentire:

  1. Accesso SFTP a / home / bob / upload per bob utente
  2. Blocca bob fuori da SSH
  3. Usa username / password anziché chiavi:

Innanzitutto, modifica il tuo file / etc / ssh / sshd_config:

sudo nano /etc/ssh/sshd

Scorri verso il basso e modifica:

PasswordAuthentication yes

e aggiungilo in fondo:

Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no  

Premi Ctrl-X per uscire e salvare.

Ora aggiungi l'utente:

sudo useradd bob
sudo passwd bob

Ora aggiungi i gruppi e disabilita ssh:

sudo groupadd sftpusers
sudo usermod  -g sftpusers bob
sudo usermod -s /usr/bin/rssh bob
sudo usermod -d /home/bob bob

Ora imposta le autorizzazioni:

sudo chown root:root /home/bob/
sudo chmod 755 /home/bob/
sudo mkdir /home/bob/uploads
sudo chown bob /home/bob/uploads

sudo service sshd restart

Tutto questo mentre si è effettuato l'accesso come utente root (utente ec2 su AMI Amazon Linux)


3
Non è necessario rilasciare i pantaloni solo per consentire a un utente di utilizzare la password auth.
EEAA,
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.