Использование нескольких SSH ключей
Порой бывает необходимо иметь несколько различных ключей для авторизации на разных серверах. Вот и у меня возникла похожая ситуация.
Единственный ключ
1. Генерируем пару ключей
~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "My RSA key"
2. Копируем публичную часть ключа на удаленный сервер
~$ ssh-copy-id user@remote
3. Настраиваем на удаленном сервере авторизацию по ключу
Обычно авторизация по ключу включена автоматически. Просто попробуйте зайти на удаленный хост через SSH и проверить это.
Если авторизация по публичному ключу отключена, то необходимо включить её. В файле /etc/ssh/sshd_config на сервере должны присутствовать следующие строки:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
На этом все. Теперь на сервер можно попасть через SSH без пароля, используя приватную часть авторизованного ключа.
Несколько ключей
При использовании нескольких ключей необходимо произвести все вышеперечисленные действия с небольшими отличиями.
1. Генерируем пары ключей в разные файлы
~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.work -C "My key for Work" ~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.home -C "My key for Home"
2. Копируем публичные части на удаленные сервера
~$ ssh-copy-id -i ~/.ssh/id_rsa.work.pub user@work ~$ ssh-copy-id -i ~/.ssh/id_rsa.home.pub user@home
3. Настраиваем удаленные сервера как показано выше
4. Настраиваем на нашем компьютере SSH авторизацию
Создадим файл конфигурации SSH клиента:
~$ touch ~/.ssh/config ~$ chmod 600 ~/.ssh/config
И добавим в него информацию о наших удаленных хостах:
Host my.work
IdentityFile ~/.ssh/id_rsa.work
Host *.home
IdentityFile ~/.ssh/id_rsa.home
User root
Port 44
Теперь на указанные сервера можно заходить через SSH без ввода пароля, причем для каждого хоста будет использоваться соответствующий файл ключа.
Используемый материал
- SSH авторизация по ключу
- ssh безпарольный вход, авторизация по ключам
- multiple ssh private keys
- OpenSSH Speed Tips and Tricks: ssh-copy-id, sshfs, speed!
- ~$ man ssh-copy-id
UPD: Благодаря товарищу kstep с ресурса welinux.ru открыл для себя скрипт ssh-copy-id, который производит копирование и установку публичного ключа на удаленный хост автоматически. Заметка соответствующим образом изменена.

можно добавить, что если есть один общий ключ и нужен еще один для определенного сервера, то можно в config описать только нужный ключ, а общий будет работать для всех остальных подключений