GNU/Linux >> Linux Esercitazione >  >> Linux

SSHFS:montaggio di un file system remoto su SSH

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.


Linux
  1. Otto modi per proteggere l'accesso SSH sul tuo sistema

  2. modo più veloce per montare un file system remoto rispetto a sshfs?

  3. Alternativa alla riga di comando SSH da Ubuntu

  4. File di registro di coda su più macchine su ssh

  5. Disattiva i segnali acustici di sistema su SSH

Come eseguire i comandi Linux su un sistema remoto su SSH

Come utilizzare SSHFS per montare directory remote su SSH

Avvio automatico della sessione Tmux sul sistema remoto quando si accede tramite SSH

Come montare un filesystem Linux remoto usando SSHFS

Usa il file di configurazione SSH per gestire le connessioni SSH a vari server remoti

Come utilizzare il montaggio SSHFS con directory remote su SSH