Чтобы настроить ключи SSH между двумя серверами, нам необходимо выполнить следующие действия:
Шаг 1. Создайте пару ключей на исходном сервере
Создайте пару ключей на исходном сервере. Когда мы даем команду ssh-keygen, она по умолчанию создает 2048-битную пару ключей RSA, и если вам нужно более надежное шифрование, вы также можете использовать 4096 бит. Для этого вам нужно использовать «-b 4096» в конце команды ssh-keygen. Я использую здесь по умолчанию.
Несколько вещей, о которых нужно позаботиться в выводе ниже:
В строке «Введите файл, в котором нужно сохранить ключ» (/корень/.ssh / id_rsa): ”
Он запрашивает путь для сохранения ключа, и по умолчанию обычно нормально. Если по умолчанию все в порядке, вы можете просто нажать ввод. Если вы хотите попробовать альтернативный путь, то вам нужно указать то же самое там. Иногда это будет примерно так:
/корень/.ssh / id_rsa уже существует. Перезаписать (да / нет)?Вам следует взять копию .ssh, прежде чем вносить какие-либо изменения, или вы должны знать, что делаете. Отправка Да приведет к тому, что старый ключ (если он уже используется) не будет работать.
В строке «Введите кодовую фразу (пусто, если кодовая фраза отсутствует):» Это дополнительная процедура безопасности, которая будет запрашивать кодовую фразу каждый раз, когда вы попытаетесь войти в SSH, и будет работать как двухэтапная проверка. Но если вам нужен ssh-доступ для любых сценариев или любых других прямых и быстрых работ, то лучше не иметь этого. Помимо написания сценариев или автоматизации работ, мы обязательно предложим вам это.
Полный результат команды для справки:
[электронная почта защищена]: ~ $ ssh-keygenСоздание пары открытого / закрытого ключей rsa.
Введите файл, в котором нужно сохранить ключ (/ root /.ssh / id_rsa):
Создан каталог '/ root /.ssh '.
Введите кодовую фразу (пусто, если кодовая фраза отсутствует):
Введите ту же парольную фразу еще раз:
Ваша идентификация сохранена в / root /.ssh / id_rsa.
Ваш открытый ключ был сохранен в / root /.ssh / id_rsa.паб.
Ключевой отпечаток пальца:
SHA256: z4nl0d9vJpo / 5bdc4gYZh8nnTjHtXB4Se / UqyuyigUI sumesh @ Sree
Изображение ключа randomart:
+---[RSA 2048]----+
| |
| . .|
| . оо.о |
| .= o = o + |
| E S o .* oBo |
| . . * о+.+.= |
| … O =. = ооо |
| . … + O *.B |
| … О. o + oB + |
+----[SHA256]-----+
[электронная почта защищена] ~ $
Шаг 2. Скопируйте созданную пару ключей на целевой сервер
Есть 2 разных способа скопировать это на целевой сервер
- Использование команды ssh-copy-id
- Копирование ключа ssh с использованием обычного пользователя / прохода ssh в качестве одного лайнера с нашего локального компьютера или после входа на сервер.
2.1 Использование команды ssh-copy-id
ssh-copy-id обработает копирование и настройку ключа на удаленный сервер должным образом для вас. После завершения команды вам не потребуется пароль для каждого входа в систему. Теперь вы можете писать все свои автоматизированные сценарии для работы системного администратора без необходимости вводить пароль вручную и экономить время на повседневном доступе к системам, которые вы используете постоянно.
Сначала вам нужно проверить, существует ли такая команда, и если команда работает, и пользователь, которого вы пытаетесь, имеет доступ к этой команде, вы можете использовать эту команду для копирования открытого ключа на удаленный сервер. Эта утилита просканирует вашу локальную учетную запись на наличие открытого ключа rsa и предложит вам ввести пароль учетной записи удаленного пользователя.
Здесь мы собираемся скопировать корневой ключ ssh для доступа на корневом уровне серверов. Итак, чтобы скопировать это, вам нужно войти в систему / переключиться на пользователя, для которого вы создали ключ. В этом случае мы пытаемся установить соединение root-root.
Полный вывод ниже, и я добавляю необходимые детали между ними
root @ Source]]: ~ $ ssh-copy-id root @ 192.1.1.19 -п 1986Подлинность хоста »[192.1.1.19]: 1986 ([192.1.1.19]: 1986) 'не может быть установлено.
Отпечаток ключа ECDSA - SHA256: YYOj54aEJvIle4D2osDiEhuS0NEDImPTiMhHGgDqQFk.
Вы уверены, что хотите продолжить подключение (да / нет)? да
Если вы используете это впервые, вы получите такой ответ, и вам нужно будет ввести да, а затем нажать ввод
/ usr / bin / ssh-copy-id: INFO: попытка входа в систему с новым ключом (ключами),чтобы отфильтровать все, что уже установлено
/ usr / bin / ssh-copy-id: ИНФОРМАЦИЯ: осталось установить 1 ключ (и) - если появится запрос
теперь нужно установить новые ключи
корень @ 192.1.1.Пароль 19:
Введите пароль и нажмите Enter.
Количество добавленных ключей: 1Теперь попробуйте войти в систему с помощью: «ssh -p '1986" [электронная почта защищена]' »
и убедитесь, что он работает должным образом.
После этого вы сможете войти на сервер без каких-либо паролей. Как только пароль без аутентификации работает нормально, вы можете отключить аутентификацию по паролю, чтобы вы могли заблокировать доступ по ssh только с помощью ключей ssh
2.2 Копирование ключа ssh с использованием обычного пользователя / пароля ssh вручную
Если каким-то образом вы не можете заставить эту вышеуказанную команду работать, я добавлю шаги, чтобы вы могли скопировать ключ ssh и установить пароль без аутентификации с вашего компьютера на ваш сервер.
Для этого мы должны вручную добавить содержимое вашего id_rsa.pub в каталог / root /.ssh / authorized_keys на вашем конечном компьютере. Если вы собираетесь скопировать ключ для пользователя root, местоположение будет /корень/.ssh / authorized_keys .
Из Шага 1: возможно, вы видели строку ниже
Ваш открытый ключ был сохранен в /корень/.ssh / id_rsa.паб.
Это говорит о том, что открытый ключ, который вам нужно скопировать на удаленный сервер, находится в указанном выше файле. Поэтому вам нужно скопировать содержимое этого файла, а затем скопировать или вставить их в authorized_keys удаленного сервера
Итак, сделайте следующие шаги
Команда ниже даст вам ключ для копирования:
[адрес электронной почты защищен] $ cat / root /.ssh / id_rsa.пабssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9Hg
H1JLknLLx44 + tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q + bqgZ
8SeeM8wzytsY + dVGcBxF6N4JS + zVk5eMcV385gG3Y6ON3EG112n6d + SMXY0OEBIcO6x + PnUS
GHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B + ZVIpSDfki9UV
KzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G / 12N0PPB5CnhHf7ovgy6nL1ik
rygTKRFmNZISvAcywB9GVqNAVE + ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77 + xiFxgI5QSZ
X3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X / vh2xPff6SQ1BL / zkOhvJCACK6Vb15mDOeCS
q54Cr7kvS46itMosi / uS66 + PujOO + xt / 2FWYepz6ZlN70bRly57Q06J + ZJoc9FfBCbCyYH7U / ASsmY0
95ywPsBo1XQ9PqhnN1 / YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G
2fJLRcGUr9q8 / lERo9oxRm5JFX6TCmj6kmiFqv + Ow9gI0x8GvaQ == root @ Source
Войдите на удаленный сервер, на который вам нужно скопировать этот ключ, и убедитесь, что вы используете того же пользователя, которому вам нужно скопировать ключ ssh. Если вам нужен прямой root-доступ, скопируйте ключ прямо в / root /.ssh / раздел
Создать папку .ssh, если он не существует
Чтобы проверить, существует ли он, и если нет, создайте его, используя следующие команды:
[электронная почта защищена]: $ ls -l / root /.sshЕсли папки нет, создайте ее с помощью следующей команды:
[электронная почта защищена] $ mkdir -p / root /.ssh[электронная почта защищена] $ touch / root /.ssh / authorized_keys
[электронная почта защищена]: $ echo «ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44 + tXfJ7mIrKNxOOwxI
xvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q + bqgZ8SeeM8wzytsY + dVGcBxF6N4JS + zVk5eMcV385gG3Y6ON3
EG112n6d + SMXY0OEBIcO6x + PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B + ZV
IpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G / 12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZI
SvAcywB9GVqNAVE + ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77 + xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1
nUhLuJ0X / vh2xPff6SQ1BL / zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi / uS66 + PujOO + xt / 2FWYepz6ZlN70bRly
57Q06J + ZJoc9FfBCbCyYH7U / ASsmY095ywPsBo1XQ9PqhnN1 / YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsd
BIbXWhcrRf4G2fJLRcGUr9q8 / lERo9oxRm5JFX6TCmj6kmiFqv + Ow9gI0x8GvaQ == root @ Source «>>
/корень/.ssh / authorized_keys
Убедитесь, что разрешение папки правильное
chmod -R go = / корень /.ssh /После этого попробуйте войти на сервер с нового терминала и убедитесь, что аутентификация без ключа работает должным образом. Только после этого отключите парольную аутентификацию в конфиге ssh.
ПРИМЕЧАНИЕ.Убедитесь, что вы можете войти на сервер по мере необходимости (либо непосредственно с вашего компьютера, либо вы можете войти в систему под другим пользователем на удаленном сервере и переключиться на root из этой учетной записи вручную с помощью su или sudo), а затем только отключить аутентификацию пароля, иначе есть шанс заблокировать пользователей root.
Если у вас есть какие-либо потребности, вы всегда можете связаться со мной для любой помощи и поделиться своими комментариями.