Логотип
Остерегайтесь мысли, что у вас есть такие добродетели, каких нет у других (Л. Толстой).

Как использовать ssh-copy-id в Ubuntu

Установка правильных разрешений .ssh/config

Одним из полезных инструментов SSH является ssh-copy-id, который используется для установки ключа SSH на удаленном сервере для входа на сервер без предоставления пароля для входа. Таким образом, с помощью этого инструмента можно легко реализовать единый вход и автоматический вход без пароля с использованием SSH. Он копирует открытые ключи в файл ~/.ssh/authorized _keys удаленного хоста, создавая файл и каталог, если требуется, но не изменяет разрешения любого существующего файла или папки. В этой статье объяснено, как можно использовать команду ssh-copy-id для SSH-соединения.

 

Предпосылки:

Перед тем, как приступить к действиям этой статьи, необходимо выполнить следующие действия.

Включите службу SSH в Ubuntu, если она не была включена ранее.

Сгенерируйте пары ключей SSH для выполнения команд на удаленном сервере. Выполните следующую команду, чтобы создать открытый и закрытый ключи. Закрытый ключ будет храниться на удаленном сервере, а открытые ключи будут надежно храниться на клиенте.

$ ssh-keygen -t rsa

 

Выполните следующую команду, чтобы открыть файл sshd_config с помощью редактора nano и добавить некоторые необходимые конфигурации.

$ sudo nano /etc/ssh/sshd_config

 

Добавьте в файл следующие строки, чтобы включить учетную запись root и аутентификацию на основе пароля.

PasswordAuthentication yes

PermitRootLogin yes

 

Выполните следующую команду, чтобы перезапустить службу SSH.

$ sudo service ssh restart

Синтаксис:

Синтаксис команды ssh-copy-id приведен ниже. Он поддерживает несколько параметров, которые будут объяснены позже.

ssh-copy-id [-lv] [-i keyfile] [-o option][-p port] [user@]hostname

Различные варианты команды ssh-copy-id:

В этой части статьи описаны цели использования различных параметров команд ssh-copy-id.

ВариантЦель
-i keyfileОн используется для копирования открытого ключа, хранящегося в файле . Его можно использовать несколько раз.
-lОн используется для копирования ключей, которые в настоящее время хранятся у ssh-agent. Он используется по умолчанию, если не указана опция -i.
-o ssh-optionОн используется для передачи параметра напрямую ssh . Его можно использовать несколько раз.
-p portОн используется для подключения к указанному порту на удаленном хосте вместо порта по умолчанию, который равен 22.
-vОн используется для передачи значения -v в ssh.

 

Скопируйте ключ на сервер:

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

Выполните следующую команду на сервере, чтобы добавить любой вновь созданный открытый ключ в качестве авторизованного ключа сервера.

$ ssh-copy-id andreyex@andreyex-VirtualBox

 

Ранее упоминалось, что параметр -i используется с командой ssh-copy-id для добавления открытого ключа из файла. Если вы сохранили вновь созданный открытый ключ в файле по умолчанию, имя файла будет id_rsa.pub . Но вы задали любое имя файла при создании пар ключей, а затем используйте это имя файла с параметром -i. Я сохранил открытый ключ в файле по умолчанию.

Выполните следующую команду на сервере, чтобы добавить открытый ключ на сервер. Команда скопирует ключ на сервер и настроит его для добавления ключа в файл authorized_keys для доступа к серверу.

$ ssh-copy-id -i ~/.ssh/id_rsa andreyex@andreyex-VirtualBox

 

Проверить соединение:

После добавления ключа к серверу вы должны проверить, может ли клиентская машина подключиться к серверу. Имя пользователя серверной машины здесь «andreyex», а клиентской машины — «master». Итак, сначала войдите на клиентский компьютер, чтобы проверить соединение.

Выполните следующую команду, чтобы добавить идентификатор сервера на клиентский компьютер.

$ ssh-add

 

Выполните следующую команду ssh без какой-либо опции, чтобы установить соединение с сервером. Если на сервере включена аутентификация на основе пароля, пользователь должен предоставить действующий пароль для установления соединения с сервером.

$ ssh andreyex@andreyex-VirtualBox

 

Следующие выходные данные показывают, что идентификатор сервера был добавлен к клиентской машине. Затем пароль пользователя сервера запросил соединение, потому что здесь на сервере включена аутентификация на основе пароля. Имя пользователя изменяется на «andreyex» с «master» в командной строке, что указывает на то, что соединение было установлено правильно после ввода действительного пароля.

Читать  Профессиональные сейфы для личного пользования или металлические ящики

Если вы хотите указать имя файла открытого ключа с указанием места для установления соединения с сервером, выполните следующую команду ssh с параметром -i. Это потребует, если вы сохраните открытый ключ в определяемом пользователем имени файла. Во время генерации ключа я использовал имя файла по умолчанию — id_rsa.

$ ssh -i ~/.ssh/id_rsa andreyex@andreyex-VirtualBox

 

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

 

Заключение:

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

Редактор: AndreyEx

Рейтинг: 4.4 (35 голосов)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2 × три =

Это может быть вам интересно


Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала