sshfs passwordless

Does any one know ssh -i equivalent for sshfs ? I want to use sshfs without promting for a password


Solution 1:

The best solution would be ssh-agent as Zoredache suggests.

Another is to put your key in ~/.ssh/id_rsa, that way it will be detected automatically. (Use id_dsa for DSA keys.)

Yet another is ~/.ssh/config. Put something like this in it (see manual page of ssh_config for further details)

Host somebox.somedomain.tld
  User joe
  IdentityFile ~/key_for_somebox

Host *
  IdentityFile ~/key_for_everything_else

Solution 2:

Setup your system to use the SSH Agent and add your key to the agent. If you are using a recent Linux distro (ie Ubuntu and others) ssh-agent may already be setup for you. All you have to do type ssh-add key.

Solution 3:

Another answer is sshfs -o IdentityFile=/home/me/.ssh/somekey.pem user@host:/path/ mnt/

Additionally, you will see people list another means of evoking sshfs:

sshfs -o ssh_command="ssh -i /home/me/.ssh/somekey.pem" user@host:/path/ mnt/

Though I will agree that ~/.ssh/config is the way to go.

Solution 4:

Not quite what you asked for, but for the benefit of anyone else trying to connect to a server that doesn't support key authentication, you can use sshpass to type in your password for you even with sshfs.

For example, if you put something similar to this in /etc/fstab:

sshfs#username@host:/  /mnt/here   fuse   auto,ssh_command=sshpass\040-f\040/root/.ssh/host.password\040ssh  0  0

Then put the password in the filename specified in /etc/fstab:

echo 'secret' > /root/.ssh/host.password

Make sure you have installed sshpass:

pacman -S sshpass  # if you're using Arch Linux

Then it should work:

mount /mnt/here

You might need to ssh to the server once first to confirm its key, but after that this should work with no manual interaction.