GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso specificare il file chiave per sshfs?

Nota questa opzione:

-o SSHOPT=VAL opzioni ssh (vedi man ssh_config)

E se guardi man ssh_config , c'è un'opzione per impostare il percorso del tuo file di chiave privata, chiamato IdentityFile , quindi puoi farlo:

sshfs -oIdentityFile=/abs/path/to/id_rsa server: path/to/mnt/point

Il percorso del file di identità deve essere un percorso assoluto.


In linea di principio funziona così (come root, o usa sudo ):sshfs -o default_permissions,nonempty,IdentityFile=/home/USER/.ssh/id_rsa [email protected]:PATH /mnt/mountpoint

Sostituisci USER con l'utente che si trova nel authorized_keys file del server, SERVER con il nome del server (o IP, come 192.168.0.11), SRVUSER con l'utente sul server (ad es. root, che non è raccomandato ma possibile e talvolta necessario; imposta il tuo /etc/ssh/sshd_config sul server correttamente per questo, cioè direttive PermitRootLogin e PasswordAuthentication ). Sostituisci anche /mnt/mountpoint di conseguenza.

L'opzione -o nonempty consente il montaggio di /mnt/mountpoint quando questa directory non è vuota. Devo usarlo poiché conservo il file .unmounted in questa directory per vedere se è montato o meno, quindi if test -e /mnt/mountpoint/.unmounted restituisce successo (cioè il file .unmount esiste in /mnt/mountpoint), non è montato.

Un esempio reale:

  • nome del server "homeserver"
  • monta la directory /home sul server
  • il mio punto di montaggio sul sistema locale è /mnt/homeserver
  • l'utente "steve" ha la chiave privata

ssh [email protected] come utente steve ha lavorato.

sshfs -o default_permissions,nonempty,IdentityFile=/home/steve/.ssh/id_rsa [email protected]:/home /mnt/homeserver (come root)

Non ha funzionato , ho ricevuto il messaggio di errore:read: Connection reset by peer

Soluzione: Ottieni un output più dettagliato aggiungendo -o debug .

# sshfs -o default_permissions,nonempty,IdentityFile=/home/steve/.ssh/id_rsa,debug 
[email protected]:/home /mnt/homeserver
FUSE library version: 2.9.8
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStT0123
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:2
ECDSA host key for homeserver has changed and you have requested strict checking.
Host key verification failed.
read: Connection reset by peer

E all'improvviso è molto più facile da risolvere. Perché le chiavi sshd sono state ricreate dall'ultima sessione tranne /root/.ssh/known_hosts sul sistema locale ha ancora le vecchie chiavi – non funziona. La soluzione, nel mio caso, era semplicemente rimuovere la riga che iniziava con homeserver da /root/.ssh/known_hosts utilizzando un editor (come nano ). Ora il montaggio con sshfs funziona. Al primo montaggio la nuova chiave deve essere riconosciuta:

# mount /mnt/homeserver
The authenticity of host 'homeserver (192.168.0.11)' can't be established.
ECDSA key fingerprint is SHA256:aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsS/1234.
Are you sure you want to continue connecting (yes/no)? yes

A proposito, questa è la riga in /etc/fstab :

[email protected]:/home  /mnt/homeserver  fuse.sshfs noauto,nonempty,default_permissions,IdentityFile=/home/steve/.ssh/id_rsa  0 0

Quindi, anche se è qualcos'altro, prova -o debug primo. Aiuterà enormemente a trovare il difetto.


Linux
  1. Come aggiungere l'output a un file?

  2. Come reindirizzare l'output di system() su un file?

  3. come avviare il server Tomcat in Linux?

  4. Come specificare la chiave privata durante la decrittografia di un file utilizzando GnuPG?

  5. Come modificare la codifica utilizzata dal mio server SFTP?

Come caricare un file sul server

Come aggiungere la chiave pubblica SSH al server

Come modificare il nome host del server in Ubuntu

Come modificare il fuso orario su Ubuntu 18.04 Server?

Come installare e configurare il firewall CSF per Linux

Come specificare il nome host per il contenitore in esecuzione?