How do you use an identity file with rsync?
You may want to use ssh-agent
and ssh-add
to load the key into memory. ssh
will try identities from ssh-agent automatically if it can find them. Commands would be
eval $(ssh-agent) # Create agent and environment variablesssh-add ~/.ssh/1234-identity
ssh-agent
is a user daemon which holds unencrypted ssh keys in memory. ssh finds it based on environment variables which ssh-agent outputs when run. Using eval
to evaluate this output creates the environment variables. ssh-add
is the command which manages the keys memory. The agent can be locked using ssh-add. A default lifetime for a key can be specified when ssh-agent is started, and or specified for a key when it is added.
You might also want to setup a ~/.ssh/config file to supply the port and key definition. (See `man ssh_config for more options.)
host 22.33.44.55 IdentityFile ~/.ssh/1234-identity Port 1234
Single quoting the ssh command will prevent shell expansion which is needed for ~
or $HOME
. You could use the full or relative path to the key in single quotes.