Настройка SSH

Установка сервера OpenSSH:

apt install openssh-server

Перезапуск сервиса ssh:

service ssh restart

Файл настроек SSH сервера:

 /etc/ssh/sshd_config

Описание параметров:

Разрешение входа по публичному ключу
PubkeyAuthentication yes

Ключи должны располагаться в файле authorized_keys находящемся в папке пользователя, осуществляющего вход, в подпапке .ssh
Например:
/root/.ssh/authorized_keys
/home/lisck/.ssh/authorized_keys

Разрешение входа пользователя root
PermitRootLogin yes
Запрет входа по паролю
PasswordAuthentication no
Порт
Port 22
Список пользователей, которым разрешено подключение
AllowUsers root lisck rush
Список групп, пользователям из которыых разрешено подключение
AllowGroups root users ssh
Ограничение авторизации по интерфейсам

Если на сервере есть несколько сетевых интерфейсов, которые настроены на использования разных IP-адресов, то вы можете ограничить доступ и по этому параметру. К примеру, на сервере следующие 4 сетевых интерфейса:
eth0 – 192.168.0.1
eth1 – 192.168.0.2
eth2 – 192.168.0.3
eth3 – 192.168.0.4
По умолчанию, ssh-сервер находится в состоянии ожидания подключения на всех IP-адресах. Если хотите, чтобы пользователи могли авторизовываться только на интерфейсах 2 и 3, то следуетв файле настроек SSH указать следущее:

ListenAddress 192.168.0.2
ListenAddress 192.168.0.3
Рассоединение при отсутствии активности

Автоматический разрыв соединения в случае бездействия заданный промежуток времени (в секундах)

ClientAliveInterval 600
Показ приветствия linux
PrintMotd yes
Показ сведений о последнем входе по SSH
PrintLastLog yes
Разрешённое количество попыток авторизации
MaxAuthTries 2
Доступ для определенных ip и подсетей

Настройка данных параметров осуществляется в двух файлах:
/etc/hosts.allow
/etc/hosts.deny

Например разрешить вход заданному ip
SSHD: 192.168.1.1
Или заданной подсети:
SSHD: 192.168.0.0/24

Чтобы запретить соединение всем, кроме указанных в файле hosts.allow нужно в файле hosts.deny прописать:
SSHD: ALL

Так-же можно прописать список разрешенных к подключению ip непосредственно в файле /etc/ssh/sshd_config:

AllowUsers = *@192.168.1.100

Здесь мы разрешаем доступ только для IP 192.168.1.100

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

В нормальных операционных системах
  1. Открываем терминал, вводим команду:
ssh-keygen -t rsa
  1. Нажимаем ENTER Чтобы подтвердить местоположение ключа по умолчанию. Утилита ssh-keygen предложит ввести пароль для ключа. Можно так-же просто нажать ENTER, чтобы создать ключ без пароля.

После этого увидим нечто похожее:
%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA
Ключи сохранены в папке пользователя, в скрытой подпапке .ssh

В ней вы найдете файл приватного ключа id_rsa и файл публичного ключа id_rsa.pub.
Приватный ключ нельзя никому показывать.

Вы можете скопировать публичный ключ командой

pbcopy < ~/.ssh/id_rsa.pub

и поместить в файл authorized_keys на сервере, к которому будете подключаться.

В Windows

Вам понадобится программа PuTTY.

  1. В папке с установленной программой вы найдете утилиту PuTTYgen.
  2. Удостоверьтесь что внизу в графе Type of key to generate отмечен RSA
    (так-же можете изменить длинну ключа с 2048 на 4096)
    2
  3. Нажмите кнопку Generate и начните беспорядочно двигать мышкой, заполняя тем самым прогресс бар.
  4. В результате программа сгенерирует ключи.
    Скопируйте публичный ключ (выделен на картинке) в текстовой файл.
    %D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA
  5. Можете ввести пароль для ключа в графы Set passphrase и Confirm passphrase
  6. Чтобы сохранить ключ для использования непосредственно в программе PuTTY нажмите кнопку Save private key и сохраните файл приватного ключа.
  7. Для использования в других программах сохраните приватный ключ в формате OpenSSH.
    Для этого в верхнем меню нажмите Conversions, а затем Export OpenSSH Key

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

Так же стоит добавить момент генерации ключей если у человека их нет или вынести это в отдельную статью.