ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как использовать команду ssh-copy-id

Как использовать команду ssh-copy-id

Команда ssh-copy-id — это простой инструмент, который позволяет вам установить ключ SSH на авторизованные ключи удаленного сервера. Эта команда упрощает вход с использованием ключа SSH, что устраняет необходимость в пароле для каждого входа, обеспечивая тем самым автоматический процесс входа без пароля. Команда ssh-copy-id является частью OpenSSH, инструмента для удаленного администрирования системы с использованием зашифрованных соединений SSH.

В этой статье показано, как использовать инструмент ssh-copy-id, чтобы сделать вашу авторизацию по SSH более простой и безопасной.

 

Как установить команду ssh-copy-id

Инструмент ssh-copy-id, часть пакета OpenSSH, доступен во всех основных репозиториях дистрибутива Linux, и вы можете использовать свой менеджер пакетов для установки этой команды.

Чтобы установить инструмент ssh-copy-id в Debian, используйте следующую команду:

sudo apt-get update && sudo apt-get install openssh-client

После установки OpenSSH вы можете использовать инструмент ssh-copy-id в командной строке.

$ ssh-copy-id

Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname         -f: force mode -- copy keys without trying to check if they are already installed         -n: dry run    -- no keys are actually copied         -h|-?: print this help

Использовать ssh-copy-id просто, потому что сценарий делает процесс аутентификации с открытым ключом более простым и эффективным. Прежде чем мы углубимся в то, как использовать инструмент, мы сначала обсудим, как работает аутентификация с открытым ключом SSH.

 

Аутентификация открытого ключа SSH

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

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

Чтобы использовать SSH-ключ, мы начнем с его генерации.

 

Как сгенерировать SSH-ключ

Чтобы сгенерировать SSH-ключ, используйте инструмент ssh-keygen, который входит в состав OpenSSH. Этот инструмент генерирует файлы открытого и закрытого ключей, хранящиеся в каталоге ~/.ssh, как показано ниже.

$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ddVOQhS6CGt8Vnertz9aiSnvOUKmSpPrZ+gI24DptsA root@user The key's randomart image is:
+---[RSA 2048]----+
|             o=o |
|             o. o|
|        . . + .+.|
|       . + + o .o|
|        S + .  . |
|. o    ..o o  + .|
|.E o   +. +. + + |
|o.  = o.o+ .o.+..|
|.o.. oo=+   o=o.+|
+----[SHA256]-----+

Как скопировать SSH-ключ с помощью SSH-copy-id

После того, как мы сгенерировали SSH-ключ, мы можем вручную добавить SSH-ключ в файл authorized_keys удаленного компьютера или использовать команду ssh-copy-id.

Мы будем использовать команду ssh-copy-id, чтобы упростить этот процесс. Просто вызовите команду ssh-copy-id и передайте путь к открытому ключу следующим образом:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@77.134.54.101 -p 6576

После ввода вышеуказанной команды вы должны получить следующий вывод:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.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 user@77.134.54.101’s password:
Number of key(s) added: 1 Now try logging into the machine, with:   "ssh -p '6576' 'user@77.134.54.101'" and check to make sure that only the key(s) you wanted were added.

 

После успешного выполнения команды попробуйте войти на сервер, используя ключ, который вы загрузили, как показано ниже:

$ ssh -p 6576 linkfy@77.134.54.101

 

Приведенная выше команда потребует от вас ввести кодовую фразу для вашего открытого ключа, как показано в выходных данных ниже:

Enter passphrase for key '/root/.ssh/id_rsa':
Last login: Fri Mar  5 14:06:16 2021 from 173.208.98.186

 

Приведенная выше команда должна позволить вам войти на удаленный хост без запроса пароля пользователя. Система может предложить вам ввести парольную фразу ключа, который вы установили ранее.

 

Параметры команды SSH-copy-id

Вы можете изменить работу команды ssh-copy-id, используя предоставленные аргументы. Чтобы просмотреть страницу справки, используйте команду ssh-copy-id -h или команду ssh-copy-id без аргументов.

  1. аргумент -i: этот аргумент указывает файл идентификации, который будет использоваться, т. е. копироваться на указанный удаленный хост. Если вы не укажете аргумент -i, будут добавлены все файлы в каталоге ~/.ssh с совпадающим шаблоном * .pub.
  2.  флаг -f: этот флаг включает принудительный режим, который не проверяет, настроен ли ключ предварительно в authorized_keys на сервере. Флаг -f добавляет ключ, что часто приводит к установке нескольких копий одного и того же ключа на сервере.
  3. флаг -p: этот флаг указывает порт SSH для подключения к удаленному хосту. Этот флаг используется, когда порт SSH по умолчанию не используется.
  4. флаг -n: этот флаг выполняет пробный запуск, который распечатывает ключи, предназначенные для установки, без их установки на удаленном хосте.

 

Заключение

В этой статье показано, как использовать команду ssh-copy-id для установки ключей SSH на удаленных хостах. Хотя это может быть простой и эффективный метод установки ключей, неправильно настроенные ключи могут привести к проблемам с безопасностью или блокировке системы. Поэтому будьте предельно осторожны, экспериментируя с этим процессом.

Exit mobile version