You are here

Установка и настройка SSH для авторизации без пароля

При настройке Ansible (материалы будут в новых статьях), появилась необходимость в использовании SSH авторизации на удаленный сервер. Начнем с установки SSH, далее перейдем к настройке и проверке. Все примеры в рамках Debian Linux.

SSH настройка и авторизация

1. Установка SSH в Debian Linux:

  1. apt install ssh

* тут все стандартно, как установка любого пакета;

2. Создание ключей SSH в Debian Linux:

  1. # откроем справку по команде
  2. ssh-keygen --help

Структура ключа:
~/.ssh/id_rsa.pub — открытый ключ. Его копируют на сервера, куда нужно получить доступ.
~/.ssh/id_rsa — закрытый ключ. Его нельзя никому показывать. Если вы в письмо/чат скопипастите его вместо pub, то нужно генерировать новый ключ.

SSH настройка и авторизация

* В первом поле смотрим "ed25529 - тип шифрования", более оптимальна на сегодняшний день;

  1. ssh-keygen -t ed25519

* При выполнении команды нас спросят: путь (папка пользователя куда сохранить открытый и закрытый ключ), пароль (можно не указывать), подтверждение пароля. Пример ниже:

SSH настройка и авторизация

3. Проверяем ключи SSH в Debian Linux:

  1. ls -la /root/.ssh/
  2. # или
  3. ls -la /home/user/.ssh/

SSH настройка и авторизация

4. Копируем ключи SSH на удаленный сервер:

  1. ssh-copy-id -i /home/user/.ssh/id_ed25529.pub userserver@192.168.0.0

* Путь до ключа локально: "/home/user/.ssh/id_ed25529.pub", Куда: "userserver@192.168.0.0" - пользователь@сервер. Копирование произойдет в нужную директорию;

SSH настройка и авторизация

5. Подключаемся на удаленный сервер:

  1. ssh userserver@192.168.0.0
  2. # или
  3. ssh userserver@debi

SSH настройка и авторизация

* IP адрес сервера "192.168.0.0" можно заменить на имя сервера "debi", если сервер доступен в той же сети, локально. Проверить можно через ping;

ВСЕ РАБОТАЕТ, но!

6. Настройка SSH на сервере:

  1. nano /etc/ssh/sshd_config

Файл конфигурации SSH

* Данный файл определяет политику подключения, в том числе по SSH ключам. Самое простое: после копирования ключей убрать авторизацию по логину и паролю, доступ только по ключам SSH. Есть особенность: # - комментарий(не активно), в котором может быть такая строка "# PermitRootLogin no", с одной стороны она не активна, с другой стороны по дефолту, значение может быть YES. Поэтому лучше раскомментировать и выставить нужное значение YES или NO;


Пример (подробнее Приложение 1 к статье):

PermitRootLogin yes — Вход под root по ssh разрешен.

PermitRootLogin no — Вход под root по ssh запрещен.

PermitRootLogin without-password — Вход под root по ssh разрешен только по ssh ключам.

Перезагрузка SSH:

  1. service ssh restart

7. Копирование файлов на сервере:

Через ssh-сессию:

  1. scp path/myfile user@8.8.8.8:/full/path/to/new/location/

Обратно тоже можно:

  1. scp user@8.8.8.8:/full/path/to/file /path/to/put/here



Источник: http://linuxsql.ru
Приложение 1.: Описание параметров файла конфигурации ssh config