La risorsa migliore per aiutarti a iniziare a configurare un servizio ssh su una macchina Host usando Ubuntu è OpenSSH Server . Ciò consentirà di utilizzare il protocollo di trasferimento file SSH (anche Secure File Transfer Protocol o SFTP) per accedere, trasferire e gestire i file su SSH da un computer client.
Panoramica della soluzione
- Su Ubuntu è possibile impostare un
OpenSSH server
computer su un host e un utente può quindi utilizzare ssh
per connettersi dal server client al server host utilizzando solo un nome utente e una password. Si noti, tuttavia, che è consigliata l'autenticazione con chiave pubblica,
"Assicurati di avere una password complessa prima di installare un server SSH (potresti voler disabilitare del tutto le password )"
- Gli account utente amministrativi creati sull'host avranno privilegi sudo, gli account utente standard creati sull'host no.
Installa e configura il tuo server OpenSSH su Host
Per installare un server OpenSSH su Host:
sudo apt-get install openssh-server
Assegna al tuo host un indirizzo IP statico in modo da poterti connettere in modo affidabile ad esso:
nm-connection-editor
Per configurare il tuo server OpenSSH , "prima fai un backup del tuo file sshd_config copiandolo nella tua home directory, o eseguendo una copia di sola lettura in / etc / ssh facendo:"
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
"Una volta eseguito il backup del sshd_config
file, è possibile apportare modifiche con qualsiasi editor di testo, ad esempio:"
sudo -H gedit /etc/ssh/sshd_config
È necessario riavviare il servizio ssh su Host affinché queste modifiche abbiano effetto
sudo service ssh restart
Considera le seguenti misure di sicurezza
- Non abilitare il port forwarding sul tuo router: quando l'outsider chiede al tuo router di connetterlo alla porta 22, ecc., Il tuo router non si conformerà a meno che tu non abbia abilitato il port forwarding
- Disabilita login root: commenta
PermitRootLogin without-password
; aggiungere PermitRootLogin no
a Host/etc/ssh/sshd_config
- Scegli una porta SSH non standard: commentare
Port 22
; aggiungere Port <new-port-number>
a Host/etc/ssh/sshd_config
- Consenti solo connessioni locali: Aggiungi
ListenAddress 192.168.0.10
- Consenti a determinati utenti su determinate porte: Aggiungi
AllowUsers <username>@<IP_address_1> <username>@<IP_address_2>
o AllowUsers <username>@111.222.333.*
a Host/etc/ssh/sshd_config
- Consenti solo connessioni chiave RSA (senza password): aggiungi il contenuto di
~/.ssh/id_rsa.pub
ciascun client come una nuova linea di host ~/.ssh/authorized_keys
. Quindi aggiungi PasswordAuthentication no
a Host/etc/ssh/sshd_config
- Tentativi di cracking degli attaccanti lenti: Usa ufw (firewall semplice) su Host per limitare la velocità delle connessioni in entrata a 10 / minuto:
sudo apt-get install ufw && sudo ufw limit OpenSSH
- Per ulteriori idee, vedere Protezione dell'accesso SSH
Se ritieni di doverlo fare, abilita PasswordAuthentication
nel tuo sshd_config
file
Trova la riga con la frase PasswordAuthentication
e falla leggere:
PasswordAuthentication yes
Salvare il nuovo sshd_config
file e quindi riavviare il ssh
servizio Host :
sudo service ssh restart
Se è necessario l'accesso da qualsiasi luogo su Internet, impostare il port forwarding sul router locale per indirizzare il traffico al server OpenSSH
Si noti che il ssh
servizio Host della porta ascolta nel sshd_config
file e configura il router per inoltrare il traffico TCP / UDP diretto a questa porta all'indirizzo IP del server OpenSSH.
Connetti a Host e accedi tramite riga di comando o terminale
Per aprire un terminale shell SFTP come <username>
su Host, aprire un Terminale su Client e immettere il comando seguente, sostituendolo 123.123.1.23
con l'indirizzo IP dell'host:
sftp <username>@123.123.1.23
Se hai modificato il numero di porta che il server OpenSSH dell'host è in ascolto, esegui:
sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
Per aprire un terminale shell SSH come <username>
sull'host, aprire un terminale sul client e immettere il comando seguente, sostituendolo 123.123.1.23
con l'indirizzo IP dell'host:
ssh <username>@123.123.1.23
Se hai modificato il numero di porta che il server OpenSSH dell'host è in ascolto, esegui:
ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
Collegati all'host e accedi tramite il file manager della GUI (ad es. Nautilus) per un accesso SFTP più visivo per abilitare i trasferimenti di file
- Apri Nautilus sul client
- Seleziona File> Connetti al server
- Genere:
SSH
- Server: inserire l'indirizzo IP dell'host
- Porta: numero di porta specificato nel
sshd_config
file host
- Nome utente: nome utente
- Password: password
Nel 14.04:
- Apri Nautilus sul client
- Connetti al server
- Digitare: `ssh @ 123.123.1.23:
Crea account utente standard sull'host con autorizzazioni file limitate al di fuori della loro cartella principale
Le autorizzazioni di file corrette in atto su Host garantiscono che ogni utente standard (senza privilegi di sudo) creato su Host possieda la propria /home/new_user
directory ma disponga di autorizzazioni limitate con il resto della struttura di directory.
- Le autorizzazioni limitate non significano necessariamente che non sono in grado di visualizzare i nomi dei file e la struttura delle directory.
Spero sia utile!