Search...

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

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

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

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


# apt install ssh (под root)


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

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


# ssh-keygen --help (откроем справку по команде)

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

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

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


# ssh-keygen -t ed25519 (не забываем про ключ -t)


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

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

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


# ls -la /root/.ssh/ или # ls -la /home/user/.ssh/ (в зависимости от пользователя)

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

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


# 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. Подключаемся на удаленный сервер:


# ssh userserver@192.168.0.0 или # ssh userserver@debi (Если при создании SSH-ключа указан пароль, то он его запросит)

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

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

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

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


# 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:


service ssh restart

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

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


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

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


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




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

Вход в систему

FeedBurner RSS

ПОДПИСКА на RSS