Данный механизм подразумевает использование пары ключей. SSH-ключи представляют собой пару — закрытый и открытый ключ. Закрытый должен храниться в закрытом доступе у клиента, открытый отправляется на сервер и размещается в файле authorized_keys.
Узнаем, под каким пользователем работаем и для которого будут созданы ключи
1 2 3 |
whoami |
1 2 3 4 5 |
cd ~ pwd /home/kost |
Генерация ключей
Я использую тип шифрования, предлагаемый по умолчанию
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/kost/.ssh/id_rsa): Created directory '/home/kost/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/kost/.ssh/id_rsa. Your public key has been saved in /home/kost/.ssh/id_rsa.pub. The key fingerprint is: 3e:45:f7:8f:d2:b8:6c:35:19:07:48:83:90:be:ad:a9 kost@confstore The key's randomart image is: +--[ RSA 2048]----+ | .o oo. | | . . ... | | . . . . | | .. . .. .| | So. .+ | | .... o+o | | oo o.o..| | o. ..o | | E. .o | +-----------------+ |
Открытый ключ хранится в файле ~/.ssh/id_rsa.pub, закрытый — ~/.ssh/id_rsa.
Открытый ключ — id_rsa.pub, необходимо скопировать на удаленный сервер в файл ~/.ssh/authorized_key. Одной строкой:
1 2 3 |
cat ~/.ssh/id_rsa.pub | ssh kost@192.168.11.101 "cat - >> ~/.ssh/authorized_keys" |
Если на удаленном сервере нет директории, то можно либо создать ее вручную, либо выполнить попытку подключения к любому ssh серверу, после чего будет создана директория .ssh
Проверяем после копирования права на удаленном сервере
1 2 3 4 5 6 7 |
ls -la ~ drwx------ 2 kost kost 4096 Янв 11 08:59 .ssh ls -l ~/.ssh/authorized_keys -rw------- 1 kost kost 404 Янв 11 09:22 /home/kost/.ssh/authorized_keys |
1 2 3 4 5 6 7 |
chmod 700 ~/.ssh/ chmod 600 ~/.ssh/authorized_keys chown kost:kost ~/.ssh/ chown kost:kost ~/.ssh/authorized_keys |
Небольшие дополнения
Принудительно указать какой тип шифрования используется
1 2 3 4 5 |
ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/home/kost/.ssh/id_dsa): |
1 2 3 |
vi /etc/ssh/sshd_config |
1 2 3 4 5 6 7 |
PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys RhostsRSAAuthentication no HostbasedAuthentication no PermitEmptyPasswords no |
1 2 3 4 |
UseLogin no |