SSH Copy ID: быстрый и безопасный способ передачи ключей SSH на удаленный сервер
SSH Copy ID (ssh-copy-id) - это утилита, которая используется для копирования открытого ключа SSH на удаленный сервер. Когда вы пытаетесь подключиться к удаленному серверу через SSH, сервер запрашивает ваш пароль для проверки подлинности. Чтобы избежать этого шага, вы можете использовать аутентификацию на основе открытого ключа SSH. Это позволяет автоматически проходить аутентификацию без ввода пароля.
Шаги по использованию ssh-copy-id:
1. Сгенерировать новую пару ключей SSH с помощью команды "ssh-keygen". Это создаст два файла: открытый ключ (id_rsa.pub) и закрытый ключ (id_rsa).
2. Подключитесь к удаленному серверу через SSH и введите команду "mkdir -p ~/.ssh". Это создаст директорию .ssh на удаленном сервере.
3. На локальном компьютере введите команду "ssh-copy-id username@remote_host". Замените "username" и "remote_host" на соответствующие значения.
4. Команда просит ввести пароль удаленного сервера. Введите пароль и нажмите enter.
5. ssh-copy-id копирует открытый ключ на удаленный сервер в файл ~/.ssh/authorized_keys.
6. Попытайтесь подключиться к удаленному серверу через SSH. Вам не должно быть запрошено ввести пароль.
Пример кода:
1. Генерация новой пары ключей SSH:
$ ssh-keygen
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:T3rTsrYOMoyOLde6xKNP+U3C6d4lwVWNvj1wx+I7GJQ username@hostname
The key's randomart image is:
+---[RSA 2048]----+
|ii+o+++=+=++o=+. |
|o=+o. .o+. .o E .|
|.+ + ..*.+. . |
|.. . . .=++. |
|o .. S+o+. . |
| .. .+=+=+ + |
|. o . o+ o=o=o o.|
| . o =.+. o.+* o |
| .+.o+ . .oo. |
+----[SHA256]-----+
2. Подключение к удаленному серверу и создание директории .ssh:
$ ssh username@remote_host
[email protected]_host's password:
$ mkdir -p ~/.ssh
3. Копирование открытого ключа на удаленный сервер:
$ ssh-copy-id username@remote_host
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/username/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'username@remote_host'"
and check to make sure that only the key(s) you wanted were added.
4. Подключение к удаленному серверу без пароля:
$ ssh username@remote_host
Last login: Thu May 20 22:53:11 2021 from local_host