Как обменяться ключом SSH для аутентификации без пароля между серверами Linux?

Внедрить аутентификацию на основе ключей SSH в Linux


SSH (Secured Shell) – это протокол, который создает криптографически защищенное соединение между клиентом SSH и удаленными серверами..

Используя SSH, вы можете безопасно управлять удаленными серверами и управлять ими. Это может быть полезно во многих отношениях.

  • Развертывание на нескольких серверах
  • Остановить / запустить службы удаленно
  • автоматизация

и все ваше творчество (надеюсь) …

Как системный администратор, это базовые вещи, которые нужно знать.

Давайте узнаем, как …

Я сгенерирую закрытый ключ и открытый ключ. Закрытый ключ должен храниться на вашем клиентском компьютере ssh и должен быть защищен. Открытый ключ должен быть скопирован на удаленный сервер для входа на этот сервер с клиентского компьютера SSH без пароля..

Вы узнаете следующее.

  • Установить SSH (не требуется, если он уже установлен)
  • Генерация ключей SSH
  • Скопируйте ключ SSH на удаленный сервер
  • Войдите на удаленный сервер, используя SSH

Для демонстрации у меня есть 2 сервера с IP-адресами ниже: одна система – клиент, а другая – сервер, на котором я буду входить через ssh с клиентского компьютера..

  • Клиент (пользователь -> geekflare): 192.168.56.102
  • Удаленный (пользователь -> Ubuntu): 192.168.56.101

Установка SSH

Прежде чем выполнять действия, упомянутые в этой статье, убедитесь, что на серверах установлен openssh-сервер. Если он не установлен, выполните команды ниже для установки.

sudo apt-get установить openssh-сервер

sudo systemctl включить ssh

sudo systemctl start ssh

Вы можете запустить команду ssh, чтобы проверить, установлена ​​она в системе или нет..

[Электронная почта защищена]: ~ $ ssh

использование: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

[-b bind_address] [-c cipher_spec] [-D [bind_address:] порт]

[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]

[-i индивидуальный_файл] [-J [[Электронная почта защищена]] хост [: порт]] [-L адрес]

[-l логин_имя] [-m mac_spec] [-O ctl_cmd] [-o опция] [-p порт]

[-Q query_option] [-R адрес] [-S ctl_path] [-W хост: порт]

[-w local_tun [: remote_tun]] назначение [команда]

Генерация ключей SSH

Это должно быть сделано на клиентском сервере.

Запустите команду ssh-keygen для генерации ключа SSH. Просто нажмите Enter, когда он запрашивает файл, фразу-пароль, ту же фразу-пароль. По умолчанию он генерирует пару ключей в каталоге ~ / .ssh. Id_rsa – это закрытый ключ, а id_rsa.pub – ассоциированный открытый ключ..

[Электронная почта защищена]: ~ $ ssh-keygen

Генерация пары открытых / закрытых ключей RSA.

Введите файл для сохранения ключа (/home/geekflare/.ssh/id_rsa):

Введите фразу-пароль (пусто, без пароля):

Введите ту же фразу еще раз:

Ваша идентификация была сохранена в /home/geekflare/.ssh/id_rsa.

Ваш открытый ключ был сохранен в /home/geekflare/.ssh/id_rsa.pub.

Ключевой отпечаток:

SHA256: 3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 [Электронная почта защищена]

Изображение ключа randomart:

+—[RSA 2048]—-+

| о + .. |

| + о + |

| Оо. , , о |

| .. *. * |

| Б. Юг о. |

| O o. , , …

| + @ o o. Е =. о |

| B + o + .o. =. |

| + … о. оо + |

+—-[SHA256]—–+

Он сгенерирует два новых файла в каталоге ~ / .ssh.

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

Закрытый ключ должен быть скопирован в папку ~ / .ssh на удаленном сервере. На большинстве серверов уже должна быть эта папка, если нет, вам нужно создать папку.

И, чтобы сделать это:

  • Войдите на удаленный сервер с тем пользователем, которого вы хотите подключить. В моем случае это убунту
  • Убедитесь, что текущий рабочий каталог является домашним каталогом пользователя, а затем создайте папку .ssh. Вы также можете использовать следующую единственную команду, чтобы создать

mkdir -p ~ / .ssh

Если у вас уже есть папка .ssh, сделайте ее резервную копию.

Далее давайте вытолкнем открытый ключ с клиентского сервера.

На клиентском компьютере (192.168.56.102) выполните приведенную ниже команду, чтобы скопировать открытый ключ на удаленном сервере в файл author_keys в каталоге .ssh..

[Электронная почта защищена]: ~ $ cat .ssh / id_rsa.pub | SSH [Электронная почта защищена] ‘кошка >> .SSH / authorized_keys’

[Электронная почта защищена]пароль:

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

[Электронная почта защищена]: ~ $ ssh [Электронная почта защищена] "чмод 700 .сш; chmod 640 .ssh / authorized_keys"

Отлично, это означает, что ключ был обменен, а разрешение установлено..

Вход на удаленный сервер с использованием SSH

Давайте проверим, работает ли он!

Давайте войдем на удаленный сервер (192.168.56.101) с клиентского компьютера (192.168.56.102) как пользователь geekflare.

Запустите команду ниже для проверки, на этот раз она не будет спрашивать пароль.

[Электронная почта защищена]: ~ $ ssh [Электронная почта защищена]

Добро пожаловать в Ubuntu 16.04.6 LTS (GNU / Linux 4.4.0-151-generic i686)

* Документация: https://help.ubuntu.com

* Управление: https://landscape.canonical.com

* Поддержка: https://ubuntu.com/advantage

346 пакетов могут быть обновлены.

11 обновлений являются обновлениями безопасности.

Последний вход в систему: Пн Июн 17 00:10:32 2019 с 192.168.56.101

Ну вот…

Я успешно вошел на удаленный сервер. Выполнение команды ниже даст IP-данные удаленного компьютера.

[Электронная почта защищена]: ~ $ ifconfig

enp0s3 Link encap: Ethernet HWaddr 08: 00: 27: 9b: 47: 86

адрес в сети Интернет: 10.0.2.15 Bcast: 10.0.2.255 Маска: 255.255.255.0

inet6 адрес: fe80 :: 5c62: 3267: b752: fe5d / 64 Область действия: ссылка

UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1

Пакеты RX: 20239 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0

Пакеты TX: 5406 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0

столкновения: 0 txqueuelen: 1000

RX байт: 22678039 (22,6 МБ) TX байт: 701710 (701,7 КБ)

enp0s8 Link encap: Ethernet HWaddr 08: 00: 27: a9: 4a: 6b

адрес в сети Интернет: 192.168.56.101 Bcast: 192.168.56.255 Маска: 255.255.255.0

inet6 адрес: fe80 :: 54a9: 761c: 9034: 21a2 / 64 Область применения: ссылка

UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1

Пакеты RX: 330 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0

Пакеты TX: 197 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0

столкновения: 0 txqueuelen: 1000

RX байт: 42847 (42,8 КБ) TX байт: 32774 (32,7 КБ)

lo Link encap: Local Loopback

адрес в сети: 127.0.0.1 маска: 255.0.0.0

inet6 адрес: :: 1/128 Область применения: Host

UP LOOPBACK RUNNING MTU: 65536 Метрика: 1

Пакеты RX: 997 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0

Пакеты TX: 997 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0

столкновений: 0 txqueuelen: 1

RX байт: 79654 (79,6 КБ) TX байт: 79654 (79,6 КБ)

Вывод

Как вы видите, настроить обмен ключами SSH очень просто. Я надеюсь, что это поможет вам и заинтересованным в изучении администрирования Linux и устранения неполадок, а затем проверить это Курс удэми.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map