SSHFS stesso è un file system nello spazio utente (FUSE) che utilizza SSH File Transfer Protocol (SFTP) per montare un file system remoto. Il sshfs
command è uno strumento client per utilizzare SSHFS per montare un file system remoto da un altro server in locale sul tuo computer.
Nota: Lo spazio utente (o userland) è tutto il codice del sistema operativo che viene eseguito al di fuori del kernel.
Sebbene non sia performante come un file system locale, sshfs
è un modo semplice per lavorare con i file su un altro computer utilizzando programmi e strumenti locali. Soprattutto, sshfs
può essere utilizzato da utenti non privilegiati sulla macchina locale (si consiglia infatti di non essere root o elevare i propri privilegi durante l'utilizzo di sshfs
) e non richiede software speciale sul computer remoto diverso da SSH con SFTP abilitato, una configurazione comune.
Installazione di sshfs
Il sshfs
lo strumento è disponibile dalla maggior parte dei repository standard delle distribuzioni e viene installato più facilmente utilizzando il gestore di pacchetti di quella distribuzione. Per Fedora, installare sshfs
è facile come:dnf install fuse-sshfs
. Sui sistemi basati su Debian, il pacchetto è semplicemente sshfs
.
Montaggio di un file system remoto
Una volta sshfs
è installato, montare un file system remoto in modo sicuro su SSH è semplice. Secondo sshfs
pagina manuale (man sshfs
), la sintassi del comando è:
sshfs [user@]host:[dir] mountpoint [options]
Questa sintassi dovrebbe apparire familiare a chiunque abbia già utilizzato SSH o SCP.
Diamo un'occhiata a sshfs
in azione. Innanzitutto, crea (o seleziona una directory esistente) da utilizzare come punto di montaggio. Nota che l'utente locale invoca sshfs
il comando deve avere accesso in scrittura al punto di montaggio. Poiché l'uso dell'account root è sconsigliato, tale criterio potrebbe utilizzare ~/mnt
preferibile a /mnt
. Quindi, è solo questione di usare sshfs
comando per connettersi alla macchina remota utilizzando le proprie credenziali SSH e specificando quale posizione remota montare sul punto di montaggio:
# Create the mountpoint
[chris@marvin ~ ]$ mkdir ~/mnt
# Invoke SSHFS with your SSH credentials and the remote location to mount
[chris@marvin ~ ]$ sshfs chris@zaphod:/home/chris/Pictures ~/mnt
# Access the newly mounted filesystem
[chris@marvin ~ ]$ ls ~/mnt/
'Screenshot from 2019-11-17 19-34-34.png'
Nota: Curiosità, sshfs
non espande ~
su una macchina remota nella home directory dell'utente.
È possibile accedere ai file system montati e utilizzarli allo stesso modo di un file system locale, sia dalla riga di comando che utilizzando altri strumenti:
Quando hai finito con il file system remoto, smontalo con fusermount
comando:
# Unmount the remote FS
[chris@marvin ~ ]$ fusermount -u ~/mnt
Opzioni di montaggio
Nella maggior parte dei casi, l'impostazione predefinita sshfs
il comando può essere usato così com'è, ma sshfs
è tutt'altro che un semplice comando. Ci sono tonnellate di opzioni e flag che coprono una varietà di situazioni, comprese le opzioni SSH e SFTP, la compressione, ecc. Dai un'occhiata a sshfs
manuale (man sshfs
) per maggiori dettagli su ciò che è disponibile.
Una delle opzioni più utili, tuttavia, è reconnect
, che consente al client di ristabilire la connessione al sistema remoto interrotto:
# Use "-o reconect" to allow the client to reconnect
[chris@marvin ~ ]$ sshfs chris@zaphod:/home/chris/Pictures ~/mnt -o reconnect
Montaggio di un file system remoto all'avvio
Il sshfs
il comando può essere utilizzato anche nel /etc/fstab
del sistema client file per montare automaticamente il file system remoto. Usa il normale fstab
sintassi, incluse le opzioni richieste, e usa sshfs
al posto del tipo di file system:
# file: /etc/fstab
chris@zaphod:/home/chris/Pictures /home/chris/mnt sshfs
Nota che usando sshfs
con fstab
il montaggio del file il file system deve essere eseguito come root, quindi è necessario apportare le modifiche appropriate per le credenziali SSH e devono essere prese adeguate precauzioni.
L'endpoint di trasporto non è connesso
Potresti ricevere un Transport endpoint is not connected
errore quando la connessione viene interrotta (ad esempio, se la macchina client cambia rete o viene sospesa). In questo caso, smonta il file system con fusermount
comando, come descritto sopra:
[chris@marvin ~ ]$ ls ~/mnt
ls: cannot access '/home/chris/mnt': Transport endpoint is not connected
[chris@marvin ~ ]$ fusermount -u ~/mnt
Si spera che questo articolo ti abbia fornito le nozioni di base necessarie per lavorare con sshfs
. È un ottimo strumento per lavorare con file system remoti in modo sicuro su una connessione SSH crittografata mentre è montato localmente sul computer client. E come detto, grazie a sshfs
essendo un file system FUSE, anche gli utenti non privilegiati possono usarlo senza richiedere a un amministratore di configurarlo.
Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente.