De fato, .bashrc
não está certo . Esse arquivo é lido quando você abre um terminal executando um shell interativo (se seu shell é bash).
Você pode executar montagens sshfs no momento da inicialização, mas isso só funciona se você não precisar de nenhuma autenticação interativa: na maioria das configurações isso significa uma chave sem senha. (Existem outras maneiras, mas elas só se aplicam dentro de redes confiáveis onde você normalmente já teria algo como o NFS.)
-
Se você é root, você pode adicionar uma entrada em
/etc/fstab
. Observe que isso usará~/.ssh
do root para procurar chaves e hosts conhecidos.example.com:/remote/path /mount/point fuse.sshfs idmap=user,uid=1234
-
Você pode colocar um
@reboot
entrada do crontab .@reboot sshfs -o idmap=user example.com:/remote/path /mount/point
Se você precisar digitar uma senha para enviar ao servidor remoto, será necessário fazer login e ter uma interface de usuário disponível primeiro. A mesma coisa, se você precisar digitar uma senha para desbloquear uma chave.
A maioria dos gerenciadores de janela e ambientes de área de trabalho permite que você execute comandos personalizados ao efetuar login. Você pode executar um snippet como o seguinte (supondo que seu ambiente já inicie um agente SSH):
SSH_ASKPASS=ssh-askpass ssh-add ~/.ssh/id_rsa
mount | grep ' /mount/point ' ||
sshfs -o idmap=user example.com:/remote/path /mount/point
mount | grep ' /mount/point ' ||
verifica se o sistema de arquivos parece estar montado já, no caso de você efetuar login por vários meios.
Como alternativa, sem usar um agente:
mount | grep ' /mount/point ' ||
SSH_ASKPASS=ssh-askpass sshfs -o idmap=user example.com:/remote/path /mount/point
Se você não tem o programa ssh-askpass
, outro método é abrir um terminal apenas para fazer a montagem:
xterm -e 'ssh-add ~/.ssh/id_rsa'
mount | grep ' /mount/point ' ||
sshfs -o idmap=user example.com:/remote/path /mount/point
Para entrar no modo de texto, coloque ssh-add
no seu ~/.profile
. Execute-o somente se o shell for interativo.
case $- in
*i*)
ssh-add ~/.ssh/id_rsa
;;
esac
sshfs -o idmap=user example.com:/remote/path /mount/point