Установка сервера 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 ключа:
В нормальных операционных системах
- Открываем терминал, вводим команду:
ssh-keygen -t rsa
- Нажимаем ENTER Чтобы подтвердить местоположение ключа по умолчанию. Утилита
ssh-keygen
предложит ввести пароль для ключа. Можно так-же просто нажать ENTER, чтобы создать ключ без пароля.
После этого увидим нечто похожее:
Ключи сохранены в папке пользователя, в скрытой подпапке .ssh
В ней вы найдете файл приватного ключа id_rsa
и файл публичного ключа id_rsa.pub
.
Приватный ключ нельзя никому показывать.
Вы можете скопировать публичный ключ командой
pbcopy < ~/.ssh/id_rsa.pub
и поместить в файл authorized_keys
на сервере, к которому будете подключаться.
В Windows
Вам понадобится программа PuTTY.
- В папке с установленной программой вы найдете утилиту PuTTYgen.
- Удостоверьтесь что внизу в графе Type of key to generate отмечен RSA
(так-же можете изменить длинну ключа с 2048 на 4096)
- Нажмите кнопку Generate и начните беспорядочно двигать мышкой, заполняя тем самым прогресс бар.
- В результате программа сгенерирует ключи.
Скопируйте публичный ключ (выделен на картинке) в текстовой файл.
- Можете ввести пароль для ключа в графы Set passphrase и Confirm passphrase
- Чтобы сохранить ключ для использования непосредственно в программе PuTTY нажмите кнопку Save private key и сохраните файл приватного ключа.
- Для использования в других программах сохраните приватный ключ в формате OpenSSH.
Для этого в верхнем меню нажмите Conversions, а затем Export OpenSSH Key