Questo tutorial spiega come connettere e trasferire i file tramite il protocollo SFTP in Linux, oltre a proteggere implementando misure di sicurezza.
IL Sftp Il comando è uno degli strumenti più utili per ogni utente di rete, compresi gli utenti domestici. Questo comando può essere implementato anche nei sistemi Windows, rendendolo attraente per ogni tipo di rete.
Questo è uno degli strumenti di riga di comando principale per condividere in modo sicuro i file tra i computer. Inoltre, per il download e il caricamento di file e directory, l'utente può modificare da remoto le autorizzazioni, rimuovere e rinominare i file e altro ancora.
SFTP è un comando che sicuramente migliorerà l'esperienza di networking dalla riga di comando.
Dopo aver letto questo articolo e applicato esempi (possono anche essere riprodotti in una macchina virtuale), il lettore saprà come configurare i sistemi Linux per trasferire i file con il comando SFTP, sia in modalità interattiva che in linea di comando.
Il contenuto è valido per tutte le distribuzioni Linux e include screenshot di scenari reali, rendendo facile per tutti i lettori capire come i comandi vengono applicati indipendentemente dal livello di conoscenza precedente.
Breve introduzione a Sftp
Precedentemente FTP (protocollo di transfert file) era l'unico metodo per trasferire file tra client e server o tra due dispositivi di rete.
Gli utenti utilizzati per caricare tutti i file di download dai server FTP con autorizzazioni per leggere e scrivere sulle directory consentite.
Ma il protocollo FTP ha subito vulnerabilità ad alto rischio ed è stato sostituito con protocolli più recenti e più sicuri. Due esempi ampiamente noti sono SCP (Protocollo Copia Secure) e SFTP (Protocollo di transfert file sicuro). SFTP è uno dei sostituti più popolari per il protocollo FTP.
Come FTP, SFTP può essere utilizzato tramite una modalità di testo interattiva o eseguendo comandi singoli. Questo tutorial spiega entrambe le tecniche.
Requisiti precedenti per utilizzare SFTP
IL Sftp Il protocollo richiede ssh (Shell Secure) da installare ed in esecuzione sul server da cui si desidera scaricare file o caricare file a.
Se il tuo server ha già l'SSH in esecuzione, puoi passare alla sezione SFTP successiva.
Su Distribuzioni Linux con sede a Debian, SSH può essere installato utilizzando il Apt Packages Manager come mostrato nello screenshot seguente.
SUDO APT Installa ssh
Su distribuzioni Linux basate su Redhat, SSH può essere installato eseguendo il seguente comando:
DNF Installa OpenSsh-Server
Una volta installato, sul server a cui si desidera connettersi, avviare il servizio con il SystemCtl Comando come mostrato di seguito (distribuzioni basate su Debian).
sudo systemctl avvia ssh
Per avviare il servizio SSH su distribuzioni basate su RedHat, eseguire:
sudo systemctl avvia sshd
Come usare Sftp in modalità interattiva
Questa sezione copre il Sftp Utilizzo della modalità interattiva.
L'unico comando da eseguire per accedere al Sftp server prima di ottenere il Sftp Il prompt dei comandi è la richiesta di connessione, che ha la sintassi simile a ssh e SCP.
L'esempio seguente descrive la sintassi corretta, dove <Utente> deve essere sostituito con un utente esistente sul server e <IP del server> Con l'host del server o l'indirizzo IP.
Sftp@
Nello screenshot seguente, l'utente locale Linux-Hint3 si collega come utente remoto Linuxhint al server con indirizzo IP 192.168.0.103.
SFTP [email protected]
La prima volta che l'utente si collega al server, gli verrà richiesto di confermare la connessione. L'utente deve digitare "SÌ", premere ACCEDERE e riempire la password.
Una volta che l'utente si collega, il server restituirà un Sftp> prompt dei comandi in cui l'utente può eseguire il Sftp comandi.
IL Sftp La modalità interattiva consente agli utenti di interagire sia con i sistemi locali che remoti.
I normali comandi Linux hanno un impatto sul server. Comandi che iniziano con un “l"Sono eseguiti nel sistema locale.
Ad esempio, se l'utente esegue il PWD comando, mostrerà la directory di lavoro corrente remota. Ma se l'utente esegue il LPWD, Mostrerà la directory corrente locale.
Per impostazione predefinita, la directory remota locale è la directory di home utente remota, ad eccezione di alcuni casi come l'esempio seguente, in cui l'utente remoto non ha una directory home.
Nello screenshot qui sotto, il PWD Il comando viene eseguito per mostrare la directory di lavoro corrente remota.
PWD
Poi, LPWD viene eseguito per mostrare la directory di lavoro corrente locale.
LPWD
Come puoi vedere nello screenshot sopra, la directory di lavoro corrente remota è la directory di root (perché la Linuxhint4 L'utente remoto non ha una home directory) e la directory di lavoro locale è la casa locale.
Se l'utente esegue il ls (Elenco) Comando, mostrerà file e directory remote all'interno della directory di lavoro corrente.
ls
Eseguendo lls (Elenco locale), il comando mostrerà file e directory all'interno della directory di lavoro corrente locale.
Con il CD Comando (modifica della directory), l'utente può spostarsi tra le directory remote. Con il LCD Comando (modifica localmente), l'utente può spostarsi tra le directory locali, come mostrato nella figura seguente.
La sintassi per scaricare un file dal server è la seguente:
Ottenere
O
Ottenere
Nell'esempio seguente, l'utente scarica il file denominato File10 e poi corre lls (Elenco localmente) La conferma del file è stato scaricato correttamente.
Ottieni file10
Per scaricare le directory, la sintassi è quasi la stessa tranne il -R Flag come mostrato di seguito.
Ottieni -r
O
Ottieni -r
Nell'esempio seguente, l'utente scarica una directory denominata Directory1.
Ottieni -r directory1
Per caricare file, la sintassi è la seguente:
Mettere
Nell'esempio pratico di seguito, l'utente carica un file denominato <file>
Per caricare le directory, basta aggiungere il -R bandiera.
Put -r
O
put -r
Gli utenti possono rimuovere i file anche in remoto utilizzando gli stessi comandi Linux. Ad esempio, per rimuovere un file basta eseguire:
Rm
Per rimuovere le directory, aggiungere il -R Flag come mostrato di seguito.
Rm -r
IL df -h Il comando può essere utilizzato per mostrare lo spazio del server totale, lo spazio utilizzato e disponibile.
df -h
Gli utenti possono anche modificare le autorizzazioni di file e directory con chmod comando come mostrato nell'esempio seguente.
Chmod +/-
Per uscire dall'esecuzione della modalità interattiva Uscita.
Uscita
Un altro modo per uscire dal Sftp la sessione è la Ciao comando.
Ciao
Usando Sftp Con comandi singoli
Inoltre, in modalità interattiva, SFTP può essere utilizzato con comandi singoli. Questa sezione copre come scaricare e caricare file senza una connessione precedente alla modalità interattiva.
La sintassi per scaricare i file è la seguente:
Sftp@ :
Nell'esempio seguente, l'utente accede come il Linuxhint5 utente e scarica il obiettivi.TXT File remoto alla directory locale rappresentata da un periodo.
SFTP [email protected]: obiettivi.TXT .
Nell'esempio pratico di seguito, l'utente scarica il file denominato qualcosa2.TXT Situato nel telecomando testdir/ sottodirectory al locale Desktop/ sottodirectory.
SFTP [email protected]: testdir/qualcosa2.txt ~/desktop
Come mostrato nell'esempio seguente, aggiungendo il -R Flag, l'utente può scaricare le directory in modo ricorsivo. Nel seguente esempio, l'utente scarica il Testdir/ directory al locale Desktop/ directory.
SFTP -r [email protected]: Testdir/ ~/ desktop
Per caricare i file eseguendo un singolo comando con SFTP, applica la sintassi di seguito.
Sftp@ : <<< $'put '
Nell'esempio seguente, il locale File2 viene caricato su testdir/ directory.
SFTP [email protected]: Testdir/ <<< $'put file2'
Per caricare una directory, aggiungi il -R Opzione utilizzando la seguente sintassi
Sftp -r@ : <<< $'put '
Nell'esempio seguente, il Desktop/ La directory locale viene caricata nel telecomando perl5/ directory.
SFTP -r [email protected]: Perl5/ <<< $'put Desktop'
Aumentare la sicurezza SFTP con l'autenticazione chiave
Per impostazione predefinita, le connessioni SFTP sono sicure e protette dal protocollo SSH.
Ma uno dei rischi è il metodo di accesso alla password predefinito a seguito della debolezza della password, che include lo scambio di password o i canali di trasmissione di password, processi. In cui, le password possono trapelare, ad esempio, con un attacco MIM (Man in the Middle) seguito da una descrizione riuscita.
Se il server non è correttamente configurato, l'accesso alla password può esporre il sistema agli attacchi di forza bruto.
Per evitare ciò, una buona pratica per le reti di piccole e medie dimensioni è implementare l'autenticazione della chiave SSH e disabilitare l'accesso alla password.
Implementazione dell'autenticazione della chiave SSH e di disabilitazione dell'accesso della password
IL Sftp La sicurezza è concessa dal protocollo SSH, il cui file di configurazione è /etc/ssh/sshd_config, Gli utenti di file devono modificare per abilitare l'autenticazione chiave e disabilitare l'accesso alla password tra altre opzioni per rafforzare la sicurezza.
Sul server che consente le connessioni in arrivo, modificare il /etc/ssh/sshd_config File con privilegi utilizzando un editor di testo semplice come nano O vi.
sudo nano/etc/ssh/sshd_config
Per abilitare l'autenticazione chiave, sul computer del server, aprire il /etc/ssh/sshd_config file con privilegi e trova la riga contenente Pubkeyauthentication n. Sostituiscilo con Pubkeyautenticazione Sì (Sostituisci il "NO" con "SÌ").
Conferma anche Permistrootlogin n Per disabilitare l'accesso al root.
IL radice L'utente è presente in tutti i sistemi basati su Unix, incluso Linux. È una cattiva decisione consentire l'accesso con un nome utente con privilegi conosciuti da tutti.
Non modificare le opzioni per disabilitare ancora l'accesso alla password, perché il processo di condivisione delle chiavi richiede l'autenticazione della password prima che il sistema sia in grado di autenticarsi con le chiavi.
Esci dal file di configurazione Salvando le modifiche e riavvia il servizio SSH.
Distribuzioni Linux basate su Debian:
sudo systemctl riavvio ssh
Distribuzioni Linux basate su Redhat:
sudo systemctl riavvio ssh
Sul lato client, richiedendo connessioni in uscita, genera la coppia di tasti eseguendo il ssh-keygen comando.
Il processo richiederà la conferma della directory dei tasti, premere ACCEDERE per lasciare la directory locale predefinita (~/.SSH/ID_RSA) o equivalente nella distribuzione Linux. Il processo offrirà di includere una passphrase da essere richiesto durante l'accesso. Aggiungendo una passphrase, la sicurezza può essere aumentata. Si consiglia di digitare uno e premere ACCEDERE. Se non vuoi aggiungere una passphrase, basta premere ACCEDERE senza digitarlo.
ssh-keygen
Ora, il client deve condividere la chiave con il server con il comando SSH-Copy-ID usando la sintassi del seguente esempio.
ssh-copy-id [email protected]
Dopo aver condiviso la chiave, testare il metodo di autenticazione chiave connettendoti al server.
Se l'autenticazione ha successo, l'utente accederà senza password. Se l'utente definisce una passphrase, verrà richiesto al posto della password come nell'esempio seguente.
SFTP @@
Dopo aver controllato la chiave di autenticazione, si consiglia vivamente di disabilitare l'accesso alla password.
Sul lato del server, Modifica il file /etc/ssh/sshd/config Ancora una volta con un editor di testo come nano O vi.
sudo nano/etc/ssh/sshd/config
Scorri verso il basso e sostituire la linea PassWordAuthentication Sì con Passwordautenticazione n.
Riavvia il servizio SSH.
sudo systemctl riavvio sshd
Distribuzioni Linux basate su Redhat:
sudo systemctl riavvio ssh
Ora, la sicurezza dell'autenticazione è adeguatamente aumentata.
Conclusione
SFTP è uno strumento molto utile per condividere i file tra i dispositivi e offre due semplici modalità. Il protocollo SFTP può essere installato su ogni sistema operativo, offrendo sicurezza, affidabilità e velocità. In alternativa, il SCP Il comando offre anche affidabilità, velocità e sicurezza e funziona attraverso il protocollo SSH. Questo secondo comando è stato anche profondamente spiegato al suggerimento di Linux (il collegamento è stato riportato nell'introduzione di questo documento).