Чтобы настроить ключи SSH между двумя серверами, нам необходимо выполнить следующие действия:
Создайте пару ключей на исходном сервере. Когда мы даем команду ssh-keygen, она по умолчанию создает 2048-битную пару ключей RSA, и если вам нужно более надежное шифрование, вы также можете использовать 4096 бит. Для этого вам нужно использовать -b 4096 в конце команды ssh-keygen. Я использую здесь по умолчанию.
Несколько вещей, о которых нужно позаботиться в выводе ниже:
В строке введите файл, в котором нужно сохранить ключ (/root/.ssh/id_rsa):
Он запрашивает путь для сохранения ключа, и обычно это нормально. Если по умолчанию все в порядке, вы можете просто нажать Enter. Если вы хотите попробовать альтернативный путь, то вам нужно указать то же самое там. Иногда это будет примерно так:
/корень/.ssh/id_rsa уже существует. Перезаписать(а также/п)?Вы должны сделать копию папки .ssh перед тем, как вносить какие-либо изменения, или должны знать, что вы делаете. Отправка Да приведет к тому, что старый ключ (если он уже используется) не будет работать.
В строке Введите парольную фразу (пусто, если парольная фраза отсутствует): это дополнительная процедура безопасности, которая будет запрашивать парольную фразу каждый раз, когда вы попытаетесь войти в SSH, и будет работать как двухэтапная проверка. Но если вам нужен ssh-доступ для любых сценариев или любых других прямых и быстрых работ, то лучше этого не иметь. Помимо написания сценариев или автоматизации работ, мы обязательно предложим вам это иметь.
Полный результат команды для справки:
[электронная почта защищена]: ~ $ssh-keygenСоздание общедоступных/пара закрытых ключей RSA.
Входитьфайл в которыйсохранить ключ(/корень/.ssh/id_rsa):
Создан каталог'/root/.ssh'.
Введите кодовую фразу(пустойдлябез парольной фразы):
Введите ту же парольную фразу еще раз:
Ваша идентификация сохраненав /корень/.ssh/id_rsa.
Ваш открытый ключ сохраненв /корень/.ssh/id_rsa.pub.
Ключевой отпечаток пальца:
SHA256: z4nl0d9vJpo/5bdc4gYZh8nnTjHtXB4Se/Сумеш UqyuyigUI@Sree
Ключизображение randomart:
+ --- [RSA 2048] ---- +
| |
| . . |
| . oo.o |
| . = o = o + |
| E S o. * OBo |
| . . * или +. +. = |
| . . . .o =. = ооо |
| . .. + o * .B |
| .. о. o + oB + |
+ ---- [SHA256] ----- +
[электронная почта защищена] ~ $
Шаг 2. Скопируйте созданную пару ключей на целевой сервер.
Есть 2 разных способа скопировать это на целевой сервер.
- Использование команды ssh-copy-id
- Копирование ключа ssh с использованием обычного пользователя ssh / pass в качестве одного лайнера с нашего локального компьютера или после входа на сервер.
2.1 Использование команды ssh-copy-id
ssh-copy-id обработает копирование и настройку ключа на удаленный сервер подходящим для вас способом. После завершения команды вам не потребуется пароль для каждого входа в систему. Теперь вы можете писать все свои автоматизированные сценарии для работы системного администратора без необходимости вводить пароль вручную и экономить время на повседневном доступе к системам, которые вы используете постоянно.
Сначала вам нужно проверить, существует ли такая команда, и если команда работает и пользователь, которого вы пытаетесь использовать, имеет доступ к этой команде, вы можете использовать эту команду для копирования открытого ключа на удаленный сервер. Эта утилита просканирует вашу локальную учетную запись на наличие открытого ключа RSA и предложит вам ввести пароль учетной записи удаленного пользователя.
Здесь мы собираемся скопировать корневой ключ ssh для доступа на корневом уровне серверов. Итак, чтобы скопировать это, вам нужно войти в систему / переключиться на пользователя, для которого вы создали ключ. В этом случае мы пытаемся установить соединение root-root.
Полный вывод ниже, и я добавляю необходимые детали между ними.
корень@Источник]]: ~ $ ssh-copy-id корень@192.1.1.19-п 1986 г.Подлинность хозяина'[192.1.1.19]: 1986 ([192.1.1.19]: 1986) »жестяная банкане будет установлено.
Отпечаток ключа ECDSA - SHA256: YYOj54aEJvIle4D2osDiEhuS0NEDImPTiMhHGgDqQFk.
Вы уверены, что хотите продолжить подключение (да / нет)? да
Если вы используете это впервые, вы получите такой ответ, и вам нужно будет ввести да, а затем нажать ввод
/usr/являюсь/ssh-copy-id: INFO: попытка регистрациивс новым ключом(s),чтобы отфильтровать все, что уже установлено
/usr/являюсь/идентификатор-копии-ssh: ИНФОРМАЦИЯ:1ключ(s)осталось установить- есливам предложено
теперь это дляустановитьновые ключи
корень@192.1.1.19пароль:
Введите пароль и нажмите Enter.
Количество ключей(s)добавлен:1Теперь попробуйте войти в систему с помощью: ssh -p ‘1986’ ‘[email protected]’
и убедитесь, что он работает должным образом.
После этого вы сможете войти на сервер без каких-либо паролей. Как только пароль без аутентификации работает нормально, вы можете отключить аутентификацию по паролю, чтобы вы могли заблокировать доступ по ssh только с помощью ключей ssh.
2.2 Копирование ключа ssh с использованием обычного пользователя / пароля ssh вручную
Если каким-то образом вы не можете заставить эту вышеуказанную команду работать, я добавлю шаги, чтобы вы могли скопировать ключ ssh и установить пароль без аутентификации с вашего компьютера на ваш сервер.
Для этого мы должны вручную добавить содержимое вашего файла id_rsa.pub в файл /root/.ssh/authorized_keys на вашем конечном компьютере. Если вы собираетесь скопировать ключ для пользователя root, его расположение будет /root/.ssh/authorized_keys .
Из Шага 1: возможно, вы видели строку ниже
Ваш открытый ключ был сохранен в /root/.ssh/id_rsa.pub.
Это говорит о том, что открытый ключ, который вам нужно скопировать на удаленный сервер, находится в указанном выше файле. Поэтому вам нужно скопировать содержимое этого файла, а затем скопировать или вставить их в authorized_keys удаленного сервера.
Итак, сделайте следующие шаги
Команда ниже даст вам ключ для копирования:
[электронная почта защищена] $Кот /корень/.ssh/id_rsa.pubssh-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== корень@Источник
Войдите на удаленный сервер, на который вам нужно скопировать этот ключ, и убедитесь, что вы используете того же пользователя, которому вам нужно скопировать ключ ssh. Если вам нужен прямой root-доступ, скопируйте ключ прямо в раздел /root/.ssh/
Создайте папку .ssh, если она не существует
Чтобы проверить, существует ли он, и если нет, создайте его, используя следующие команды:
[электронная почта защищена]: $ls - /корень/.sshЕсли папки нет, создайте ее с помощью следующей команды:
[электронная почта защищена] $mkdir -п /корень/.ssh[электронная почта защищена] $трогать /корень/.ssh/авторизованные_ключи
[электронная почта защищена]: $выбросилssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQCql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44 + 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== корень@Источник>>
/корень/.ssh/авторизованные_ключи
Убедитесь, что разрешение папки правильное.
chmod -Р идтизнак равно/корень/.ssh/После этого попробуйте войти на сервер с нового терминала и убедитесь, что аутентификация без ключа работает должным образом. Только после этого отключите аутентификацию по паролю в конфиге ssh.
ПРИМЕЧАНИЕ.Убедитесь, что вы можете войти на сервер по мере необходимости (либо непосредственно с вашего компьютера, либо вы можете войти в систему под другим пользователем на удаленном сервере и переключиться на root из этой учетной записи вручную с помощью su или sudo), а затем только отключить аутентификацию пароля, иначе есть шанс заблокировать пользователей root.
Если у вас есть какие-либо потребности, вы всегда можете связаться со мной для любой помощи и поделиться своими комментариями.