Para redes exclusivamente Linux, considero o SSHFS nativo, estável e extremamente rápido. Eu tenho duas máquinas Xubuntu (18.04) compartilhando / pastas domésticas sobre SSH.
Veja como configurar o sshfs e reconectar-se automaticamente após a reinicialização usando o fstab sem precisar fornecer uma senha. Um grande obrigado ao usuário serverfault kubanczyk por como se reconectar após uma suspensão / retomada remota.
Usarei "Local machine - surfbox" no computador do qual você está se conectando e "Remote machine - devbox" no computador ao qual você está se conectando.
Substitua "remoteuser" abaixo pelo nome de usuário com o qual você efetuou login na máquina remota e "localuser" pelo nome de usuário com o qual você efetuou login na máquina local. Para verificar nomes de usuário, digite o echo $USER
terminal em máquinas remotas e locais.
Além disso, verifique o seu userID e groupID, pois ambos devem ser 1000.
GroupID: id -g localuser
UserID:id -u localuser
1. Obtenha endereços IP de suas máquinas locais e remotas.
hostname -I
Usarei 192.168.1.150 para Máquina Local ('surfbox') e 192.168.1.151 para Máquina Remota ('devbox')
2. Instale pacotes em máquinas locais e remotas
sudo apt install sshfs fuse ssh
3. Crie um fusível de grupo e adicione um usuário local a ele
Criar grupo: sudo groupadd fuse
Adicione localuser ao grupo: sudo usermod -a -G fuse $user
4. Ative "allow_other" na configuração do fusível
Vamos precisar dessa opção ao montar no fstab
Edite /etc/fuse.conf
com seu editor de linha de comando. Remova a hashtag antes user_allow_other
e salve.
5. Gere chaves SSH na máquina local
Não forneça uma senha quando solicitado . Basta pressionar Enter para deixar em branco.
ssh-keygen -t rsa -C youremail@example.com
As chaves são armazenadas na pasta /.ssh do diretório inicial da máquina local
6. Transfira sua chave SSH pública da máquina local para a máquina remota
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
Você será solicitado a fornecer a senha do usuário remoto na máquina remota. A chave pública da máquina local agora é adicionada ao arquivo ~ / .ssh / allowed_keys na máquina remota.
7. Crie um diretório na pasta Local machine / mnt onde você montará a pasta Remote machine / home.
Escolha qualquer nome que faça sentido para sua máquina remota.
sudo mkdir /mnt/devboxhome
8. Monte o diretório remoto da máquina / home a partir do terminal
A sintaxe para sshfs é
sshfs [user@]host:[directory] mountpoint [options]
nós usamos
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
exemplo: supondo que "steve" seja o nome de usuário nas máquinas local e remota
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
Como você transferiu a chave pública RSA para a máquina remota, não deve ser solicitada a senha do usuário remoto.
Você receberá um aviso de que a máquina não é confiável e será solicitada se ela for adicionada. Adicione a máquina remota como confiável.
9. Verifique: Navegue no Diretório Remoto / Página Inicial da Máquina
No terminal na máquina local, agora você pode listar a máquina remota / diretório pessoal em / mnt / devboxhome
cd /mnt/devboxhome
ls
ou use o Nautilus para navegar no diretório. Ótimo.
10. Habilite a reconexão após a reinicialização
Adicionaremos uma entrada no / etc / fstab para que isso aconteça. Você precisará da sua máquina local userid och groupid - veja a introdução se você perdeu isso. Edite / etc / fstab com seu editor de linha de comando e adicione essas duas linhas no final de / etc / fstab
# Mount devbox at boot
remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
- O delay_connect faz com que o kernel aguarde até que a rede esteja funcionando até tentar montar o diretório na máquina remota.
- Como estamos executando como root durante a inicialização, temos que especificar o arquivo de chave que é armazenado no diretório inicial do usuário local.
- allow_other - usuários diferentes daquele que está realizando a montagem real podem acessar o sistema de arquivos montado.
- idmap = usuário - traduz apenas o UID do usuário conectado
- reconectar, ServersLiveInterval, ServerAliveCountMax - ssh envia pings de manutenção. Se
ServerAliveCountMax
pings consecutivos falharem, reconecte.
Um usuário que efetuasse login como steve em máquinas locais e remotas teria:
steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
IMPORTANTE : uma barra após o diretório remoto: steve@192.168.1.151: / home / steve /
salve / etc / fstab e ....
11. Reinicialização
Agora você deve conseguir acessar o diretório Remote machine / home na máquina Local / mnt / devboxhome No Nautilus, você pode arrastar esta pasta para a barra Places
12. Repita
Siga as mesmas etapas novamente na máquina remota para tornar o diretório / home da máquina local compartilhado.