GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il montaggio SSHFS con directory remote su SSH

Lavorare su una directory remota come se fosse locale è più conveniente, non sei d'accordo? Invece di eseguire il push e il pull di file in remoto utilizzando SCP, SFTP o FTP, cosa accadrebbe se potessi gestire direttamente quei file? Fortunatamente per te, il supporto SSHFS è una rapida soluzione a questo dilemma.

Questo tutorial ti insegnerà come utilizzare il montaggio SSHFS in modo da poter accedere ai contenuti della directory remota sul tuo computer locale. Che tu sia un utente Windows o Linux, questo tutorial ti copre.

L'esempio di caso d'uso specifico in questo tutorial mostra l'aggiornamento dei contenuti di un sito Web su una directory montata SSHFS di un server remoto. Tuttavia, il concetto generale dovrebbe applicarsi alla tua situazione specifica e non è limitato ai soli server web.

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, assicurati di avere quanto segue:

  • Un web server Linux – Questo tutorial utilizzerà un Fedora 35 chiamato wbserver con Apache HTTP Server installato. Questo server contiene la directory remota che sarà la destinazione del montaggio SSHFS.
  • Un client Linux – Questo tutorial utilizzerà un client Fedora 35 chiamato fedora .
  • Un client Windows (Windows 7 e versioni successive):questo tutorial utilizza un client Windows 10 denominato win10pc .

Preparazione della directory remota

Questo tutorial lavorerà sulla directory remota su wbserver server chiamato /var/www/html . Per impostazione predefinita, solo l'account root ha accesso a questa cartella. Poiché non utilizzerai l'account root del server, devi invece concedere all'account utente designato l'autorizzazione alla directory.

In questo esempio, l'account utente designato per il montaggio e l'accesso al montaggio SSHFS è adm1 . Segui i passaggi seguenti per fornire adm1 le autorizzazioni appropriate per /var/www/html su wbserver .

1. Accedi a wbserver utilizzando il tuo client SSH preferito.

2. Quindi, esegui il comando seguente per concedere all'utente adm1 i permessi di accesso completo (rwx) alla cartella /var/www/html.

sudo setfacl -m u:adm1:rwx /var/www/html

3. Infine, conferma che l'autorizzazione è corretta eseguendo il comando seguente.

sudo getfacl -a /var/www/html

Come puoi vedere di seguito, adm1 ora ha accesso in lettura/scrittura alla cartella.

Utilizzo di SSHFS Mount su Linux

SSHFS è principalmente uno strumento Linux e devi solo emettere alcuni comandi per montare una directory remota sul tuo computer. Installare i pacchetti per abilitare il montaggio SSHFS è conveniente quanto installare altri pacchetti su Linux tramite il gestore pacchetti della tua distribuzione.

Installazione di SSHFS e montaggio di una directory remota

Segui i passaggi seguenti per installare il pacchetto di montaggio SSHFS e montare una directory remota su un percorso locale.

1. Accedi al tuo client Linux tramite SSH o Desktop, a seconda del tuo ambiente.

2. Esegui il comando seguente per installare il pacchetto fuse-sshfs utilizzando il tuo gestore di pacchetti.

Nota:nelle distribuzioni Linux basate su Debian, il nome del pacchetto è sshfs.

sudo dnf install -y fuse-sshfs

Il gestore pacchetti installa anche le dipendenze non ancora presenti sul tuo computer. E poiché ogni pacchetto ha una dimensione inferiore a 100 KB, il download e l'installazione hanno richiesto solo pochi secondi per essere completati.

3. Quindi, crea una nuova cartella nella tua home directory chiamata mnt. Questa nuova cartella è il punto di montaggio per la directory remota.

mkdir ~/mnt

4. Dopo aver creato il punto di montaggio, eseguire il comando sshfs riportato di seguito.

Questo comando monterà la directory remota del server Web (wbserver) (/var/www/html) sul punto di montaggio locale (~/mnt) che hai creato durante l'utilizzo delle credenziali di accesso di adm1.

sshfs [email protected]:/var/www/html ~/mnt

Se il server SSH non è in ascolto sulla porta predefinita 22, è necessario specificare l'opzione -o port con il comando sshfs. Ad esempio, se il server remoto ascolta la porta 2222, il comando sarebbe sshfs -o porta 2222.

5. Se ti connetti al server per la prima volta, conferma the connessione premendo Y al prompt, digita la password dell'account e premi Enter .

6. Infine, conferma di aver montato correttamente la directory remota eseguendo il comando seguente.

findmnt

Dovresti vedere che la directory remota è ora montata nella directory locale che hai specificato.

Abilitazione dell'automount all'avvio

Mentre hai montato correttamente la directory remota, ricorda che questo stato di montaggio non è persistente. Il riavvio del computer non monta automaticamente la directory remota.

Tuttavia, puoi fare in modo che il montaggio SSHFS sopravviva al riavvio del computer modificando il /etc/fstab file e abilitando l'autenticazione basata su chiave per il adm1 account. L'abilitazione dell'autenticazione basata su chiave SSH garantisce che il montaggio SSHFS sia completamente automatizzato (nessuna richiesta di password).

1. Sul client Linux, genera una nuova coppia di chiavi SSH eseguendo il comando seguente.

ssh-keygen

Nel file Invio in cui salvare la richiesta della chiave, digitare il nome del file della chiave e premere Invio. In questo esempio, il nome del file chiave da salvare è /home/user1/.ssh/[email protected]

Lascia vuota la passphrase e premi Invio due volte. Lo screenshot seguente mostra il risultato della creazione della coppia di chiavi.

2. Ora, copia la chiave sul server web. Il comando seguente installa la chiave che hai generato in precedenza (/home/user1/.ssh/[email protected]) nell'account adm1 su wbserver.

ssh-copy-id -i /home/user1/.ssh/[email protected] [email protected]

Digita la password per [email protected] al prompt e premi Invio. Come puoi vedere di seguito, il comando ha installato correttamente la chiave sul server.

3. SSH in wbserver utilizzando la coppia di chiavi per garantire che l'accesso basato su chiave funzioni.

ssh -i /home/user1/.ssh/[email protected] [email protected]

Di conseguenza, l'accesso dovrebbe avere esito positivo senza richiedere una password. Digita exit e premi Invio per uscire dal wbserver.

4. Ora che hai configurato l'autenticazione basata su chiave SSH per l'account utente SSHFS, sei pronto per configurare il montaggio SSHFS persistente.

Apri il file /etc/fstab in un editor di testo.

sudo nano /etc/fstab

5. Aggiungi il codice seguente alla fine del file /etc/fstab. Assicurati di modificare il valore identityfile=con il percorso del file della chiave SSH.

[email protected]:/var/www/html /home/user1/mnt fuse.sshfs identityfile=/home/user1/.ssh/[email protected],allow_other,_netdev 0 0

6. Dopo la modifica, salvare il file, chiudere l'editor di testo e riavviare il computer. Come puoi vedere di seguito, il montaggio SSHFS è di nuovo disponibile dopo il riavvio.

Test del supporto SSHFS

Quindi hai montato la directory remota sul tuo computer locale. La domanda ora è:"funziona?". Il test più rapido per confermare è creare un nuovo file e salvarlo nel punto di montaggio SSHFS. Il file che hai creato dovrebbe quindi apparire sul server.

Per impostazione predefinita, /var/www/html cartella sul server web è vuota. Quando accedi al sito Web ospitato su https://wbserver , vedrai solo la pagina di test predefinita, come lo screenshot qui sotto.

In questo esempio, creerai una nuova home page e confermerai che il server web visualizzi quella nuova pagina.

1. Cambia la directory di lavoro in ~/mnt, il punto di montaggio SSHFS.

cd ~/mnt

2. Eseguire il comando touch per creare un file index.html e aprirlo nell'editor di testo.

touch index.html && nano index.html

3. Ora, compila il file index.html con il codice HTML sottostante, salva il file ed esci dall'editor.

Welcome

I was put here over SSH by SSHFS

Lo screenshot seguente mostra il contenuto previsto del file index.html.

4. Infine, apri nuovamente l'URL del sito Web nel browser Web. Il server web dovrebbe raccogliere e visualizzare la nuova home page, come puoi vedere di seguito.

Congratulazioni! Ora hai implementato con successo il montaggio SSHFS sul tuo computer Linux. Non è necessario caricare o scaricare file remoti per apportare modifiche manualmente.

Smontaggio della directory remota

Supponiamo che tu non abbia più bisogno di accedere alla directory remota tramite SSHFS mount e desideri smontarla, esegui uno dei comandi seguenti.

Esegui il comando seguente se hai montato la directory remota in modo interattivo utilizzando il sshfs strumento.

fusermount -u /home/user1/mnt

Se hai montato automaticamente la directory remota in fstab , esegui invece il comando seguente. Inoltre, devi rimuovere la voce di montaggio automatico SSHFS in fstab . In caso contrario, la directory remota verrà nuovamente montata automaticamente dopo un riavvio.

sudo umount /home/user1/mnt

Utilizzo di SSHFS Mount su Windows

I computer Windows possono mappare i percorsi di rete come unità locali, ad esempio siti FTP, condivisioni di rete e raccolte di SharePoint. Sarai felice di sapere che puoi anche aggiungere unità di montaggio SSHFS in Windows installando un programma chiamato SSHFS-Win, una porta di SSHFS su Linux.

Installazione di WinFsp e SSHFS-Win

SSHFS-Win richiede WinFsp per funzionare in quanto fornisce la funzionalità FUSE sottostante. Segui le istruzioni seguenti per installare sia WinSfp che SSHFS-Win.

1. Apri il browser sul tuo client Windows e scarica l'ultima versione di WinSfp (v1.10) e SSHFS-Win (v3.5.20357).

2. Individua i programmi di installazione che hai scaricato ed esegui prima il programma di installazione di WinSfp.

3. Fare clic su Avanti nella pagina Benvenuti nella procedura guidata di installazione di WinFsp 2022.

4. Seleziona tutte le funzionalità e fai clic su Avanti.

5. Fare clic su Installa nella pagina Pronto per l'installazione di WinFsp 2022.

6. Dopo l'installazione di WinFsp, fare clic su Fine.

7. Quindi, avvia il programma di installazione di SSHFS-Win.

8. Fare clic su Avanti nella prima schermata, come mostrato di seguito, per avviare il processo di installazione.

9. Fare clic su Avanti nella pagina Configurazione personalizzata.

10. Nella pagina Pronto per l'installazione di SSHFS-Win, fare clic su Installa.

11. Infine, fare clic su Fine per completare per uscire dall'Installazione guidata.

Comprensione del percorso SSHFS Sintassi

Prima di mappare una directory remota tramite il montaggio SSHFS, rivedere l'elenco seguente per capire come SSHFS-Win interpreta i percorsi remoti.

\\\\PREFIX\\[email protected][!PORT][\\PATH]
  • REMUSER è l'utente remoto di cui utilizzerai le credenziali per autenticarti con il server remoto.
  • HOST è il nome host o l'indirizzo IP del server remoto.
  • PORT è la porta di ascolto SSH del server remoto. Questo valore è facoltativo e l'impostazione predefinita è la porta 22.
  • PATH è il percorso remoto relativo al PREFIX . I diversi prefissi sono:
    • sshfs – esegue il mapping al percorso relativo alla home directory dell'utente (es. HOST:~REMUSER/PATH ).
    • sshfs.r – esegue il mapping a un percorso relativo alla directory principale dell'host (ad esempio, HOST:/PATH )
    • sshfs.k – esegue il mapping al percorso relativo alla home directory dell'utente (es. HOST:~REMUSER/PATH ) e utilizza l'autenticazione basata su chiave SSH. Questo prefisso utilizza la chiave in %USERPROFILE%/.ssh/id_rsa per l'autenticazione.
    • sshfs.kr – esegue il mapping a un percorso relativo alla directory principale dell'host (ad esempio, HOST:/PATH ) e utilizza la chiave in %USERPROFILE%/.ssh/id_rsa per l'autenticazione.

Montaggio e smontaggio della directory remota utilizzando Esplora file di Windows

Un modo per mappare un'unità di rete in Windows è tramite Esplora file di Windows. Con questo metodo, non devi eseguire alcun comando e farai ogni passaggio in una GUI in stile procedura guidata.

1. Aprire una finestra di Esplora file, fare clic su Questo PC —> Computer —> Mappa unità di rete .

2. Scegli una lettera di unità e digita il percorso seguente nella casella Cartella per montare la cartella \var\www\html.

\\sshfs.r\[email protected]\var\www\html

Lascia selezionata l'opzione Riconnetti all'accesso e fai clic su Fine.

3. Immettere la password dell'account, selezionare la casella Ricordami e fare clic su OK.

Ora hai mappato un montaggio SSHFS con una lettera di unità. E poiché hai abilitato le opzioni Riconnetti all'accesso e Ricordami, Windows ricollegherà il montaggio SSHFS dopo aver riavviato il computer.

4. A questo punto, puoi ora gestire i file nella directory remota. Tuttavia, se non hai più bisogno dell'unità mappata e desideri rimuoverla, fai clic con il pulsante destro del mouse sul montaggio SSHFS e fai clic su Disconnetti.

Montaggio e smontaggio della directory remota utilizzando la riga di comando

Il comando net use è un altro modo per mappare una directory remota in Windows. La mappatura delle unità di montaggio SSHFS tramite la riga di comando è utile per lo scripting e l'automazione.

Per montare la directory remota, apri il prompt dei comandi o PowerShell ed esegui il comando seguente per mappare il \\var\\www\\html directory remota nell'unità Z del computer locale . Assicurati di cambiare il PASSWORD valore con la password dell'utente remoto.

net use Z: \\\\sshfs.r\\[email protected]\\var\\www\\html PASSWORD /user:adm1

Per rimuovere l'unità di montaggio SSHFS utilizzando la riga di comando, delete la mappatura per guidare Z: eseguendo il comando seguente.

net use Z: /delete

Test del supporto SSHFS

Ora che hai accesso a un'unità di rete mappata localmente, puoi gestire i file nella directory remota come faresti con qualsiasi altro file locale. In questo esempio, aggiornerai la home page del sito Web direttamente dall'unità SSHFS mappata.

1. Apri Esplora file e vai all'unità mappata.

2. Apri il file chiamato index.html in un editor di testo come il blocco note. Se il file non esiste, crealo prima.

3. Copia il codice HTML di seguito, incollalo nel tuo index.html e salva il file.

Welcome

I was put here over SSH by SSHFS

Brought to You from Windows 10

4. Infine, apri il tuo browser web e vai all'URL del sito web HTTP://wbserver . Ora dovresti vedere la home page aggiornata che hai modificato, a conferma che il tuo montaggio SSHFS funziona come previsto.

Conclusione

Hai finalmente raggiunto la fine di questo tutorial. Hai imparato a utilizzare il montaggio SSHFS per mappare le directory sul tuo computer Windows o Linux locale da un server SSH remoto. SSHFS è uno strumento eccellente per la comodità e la sicurezza dell'accesso remoto ai file.

A proposito di sicurezza, forse dovresti dare un'occhiata a Come proteggere SSH con Fail2Ban come passaggio successivo? Buona fortuna!


Linux
  1. Come utilizzare Ssh-copy-id con il tunnel Ssh a più hop?

  2. Linux:come montare un filesystem remoto specificando un numero di porta?

  3. SSHFS (Secure SHell FileSystem) – Monta in modo sicuro il filesystem remoto su ssh

  4. Come differenziare le directory su ssh

  5. Come posso utilizzare SSH con un proxy SOCKS 5?

SSHFS:montaggio di un file system remoto su SSH

Come montare un filesystem Linux remoto usando SSHFS

Come utilizzare SSH per connettersi a un server remoto

Come utilizzare una chiave SSH con utenti non root

Monta una cartella remota con sshfs

Come utilizzare SSH per connettersi a un server remoto in Linux o Windows