SSH Key авторизация на удалённом хосте

Под Windows всё ясно - установил PuTTY и дело с концом, а вот с Linux почему-то у людей возникают трудности - у новичков, иногда и не очень новичков.

Для подключения к SSH серверу с использованием приватного ключа, используется параметр “-i”

1
ssh -i /patch_to_private_key/key user@host

Конечно неудобно постоянно прописывать путь к файлу сертификата и хочется немного автоматизировать процесс. Для этого необходимо создать файл настроек вашего SSH клиента и прописать хосты и используемые для них ключи

1
2
touch ~/.ssh/config
vi ~/.ssh/config

Присваиваем ключи хостам

1
2
3
4
5
6
# Один хост
Host server.com
  IdentityFile ~/.ssh/key_file_DSA-RSA
# Или группе хостов
Host server2.com server3.com 192.168.0.1
  IdentityFile ~/.ssh/key_file_DSA-RSA

Права доступа на SSH ключи, необходимо выставить как “600”

После можно производить соединение привычным способом

1
ssh user@server.com

(если при создании ключа, был указан пароль, то будет произведён запрос пароля)

Если в системе есть множество пользователей использующих соединения к одним и тем-же серверам, то настройки можно внести в глобальный файл конфигурации “/etc/ssh/ssh_config”, в этом случае останется только положить в каталог “/home_dir/.ssh/” личные ключи с указанными именами.

Если возникает подобная ошибка:

1
2
3
4
5
ssh user@server.com
Permissions 0640 for '/home/user/.ssh/server.pem are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/user/.ssh/server.pem

Это означает что вы не правильно выставили права на файлы ключей, права должны быть «600»

1
chmod 600 ~/.ssh/server.pem

Комментарии