I won't recommend you ssh-add (which need to open a ssh-agent) at login. This is because you can't control when the ssh-agent section ends, and can create security risk when you need not use the keyfiles at one login section.
Rather, I recommend to write a script which opens a ssh-agent's section sub-shell, with all keyfiles auto added, and be called when needed to use ssh. If you could adopt so, read on.
You would have two choices:
Remove all passphrases for your keys, which have weak security if your key files are stolen. (thus not recommended)
Use the same passphrase for your keys. Then when you
ssh-add keyfile1 keyfile2 ...
, you will only need to type the passphrase once, per section.
In both cases, you could write such script file "ssh_keys_section.sh" as below:
#!/bin/bash
# This script run a ssh-agent on a sub-shell and automatically ssh-add all keyfiles at once.
# This agent ends when you type `exit` to close the sub-shell.
exec ssh-agent bash -c "ssh-add /path/to/keyfile1 /path/to/keyfile2 ...; exec bash"
ReferenceRemarks:
- Command to change or delete passphrase:
ssh-keygen -p -f keyfile
- Within the sub-shell, you might even fork more terminals which share the same unlocked keys, by using maybe a command like
/path/to/yourterminal &
(depends on OS)