Команда ssh-copy-id — это простой инструмент, который позволяет вам установить ключ SSH на авторизованные ключи удаленного сервера. Эта команда упрощает вход с использованием ключа SSH, что устраняет необходимость в пароле для каждого входа, обеспечивая тем самым автоматический процесс входа без пароля. Команда ssh-copy-id является частью OpenSSH, инструмента для удаленного администрирования системы с использованием зашифрованных соединений SSH.
В этой статье показано, как использовать инструмент ssh-copy-id, чтобы сделать вашу авторизацию по SSH более простой и безопасной.
Инструмент 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-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-ключ в файл 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 -h или команду ssh-copy-id без аргументов.
В этой статье показано, как использовать команду ssh-copy-id для установки ключей SSH на удаленных хостах. Хотя это может быть простой и эффективный метод установки ключей, неправильно настроенные ключи могут привести к проблемам с безопасностью или блокировке системы. Поэтому будьте предельно осторожны, экспериментируя с этим процессом.