Подключение к SSH на Ubuntu



Подключение к SSH на Ubuntu
01.12.2021

SSH (Secure Shell) – это сетевой протокол безопасного доступа. В основном используется при управлении удаленными серверами и оборудованием, использующим ОС Linux для доступа к консоли (терминалу). SSH – это клиент-серверный протокол и при подключении используется 2 приложения, с одной стороны это сервер, который принимает входящие подключения (по умолчанию на 22 порт) и управляет ими, вторая часть - это клиент который подключается к серверу. Плюсы SSH в его безопасности, распространенности и доступности.

Существует большое разнообразие клиентов под множество платформ и операционных систем, что позволяет управлять вашим сервером по SSH даже с мобильных устройств при необходимости.

Подключение по SSH в разных ОС.

В Linux SSH клиент предустановлен почти во всех сборках по умолчанию.

Самые популярные ssh клиенты в MacOS:

  • Terminal (стандартный терминал)

  • iTerm2

Под Windows также существует множество приложений-клиентов:

  • PuTTY

  • Xshell

  • OpenSSH

Важным элементом безопасности SSH является генерация уникального цифрового отпечатка устройства (fingerprint) при установке новых подключений, что позволяет идентифицировать SSH сервер и защититься от его подмены. Подключаясь к новому серверу, вы увидите предупреждение о том, что данный отпечаток у вас не сохранен, после его сохранения сообщение не будет выводится в дальнейшем.

Аутентификация (авторизация) на SSH сервере может происходить двумя способами:

  • С помощью пароля

  • С помощью пары SSH ключей – открытый (public key) и закрытый (private key). 
Для повышения безопасности рекомендуется использовать именно SSH ключи, поскольку, по сравнению с паролем, ключи нельзя украсть. Они не передаются с клиентской стороны серверу по каналу. Клиент “подтверждает” серверу, что у него есть ключи и его можно допустить к управлению.

Публичный ключ – хранится на сервере в открытом виде.

Приватный ключ – находится только у пользователя, которому необходим удаленный доступ к серверу, такие ключи лучше хранить в зашифрованном виде.

Преимущества ключей:

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

На самом сервере не хранится никакой приватной информации, такой как – hash пароля.

Установка SSH сервера на Ubuntu 20.04 (OpenSSH)

Для установки OpenSSH на вашем сервере должен быть настроен доступ в интернет.

Откройте терминал и введите команду:

sudo apt install openssh-server


Согласитесь, с установкой пакетов нажав Д или Y.

Теперь служба SSH установлена на вашем сервере и вероятно добавлена в автозагрузку.

Что бы проверить включена ли служба, вы можете выполнить следующую команду:

sudo systemctl list-unit-files | grep enabled | grep ssh

Если служба не включена вы можете добавить ее самостоятельно в автозагрузку:

sudo systemctl enable ssh


Для проверки работы ssh сервера вы можете подключится к локальному серверу введя команду:

ssh localhost


Настройка SSH сервера в Ubuntu 20.04

По умолчанию все файлы конфигурации находятся в директории /etc/ssh


Наиболее важные файлы конфигурации это:

  • Ssh_config – файл настройки клиента, определяет правила которые применяются при подключении к удаленному хосту

  • Sshd_config – файл настройки сервера, определяет правила подключения к серверу.

Для настройки SSH сервера откройте файл его конфигурации.

Примечание: перед изменением настроек рекомендуем сохранить исходный файл конфигурации.

sudo vi /etc/ssh/sshd_config

Изменить порт подключения:


Перед параметром Port уберите знак # (раскомментируйте) и укажите номер порта, на который вы хотите изменить.

Отключение входа в систему для пользователя с правами root:

По умолчанию в последних дистрибутивах Ubuntu установлен параметр prohibit-password (запретить-пароль), который позволяет использование только SSH ключей для подключения с правами root

Вы можете изменить данный параметр и полностью ограничить подключения для данных пользователей, для этого укажите параметр:

PermitRootLogin no


Для аутентификации по ключу включите параметр

PubkeyAuthentication yes


Для применения настроек, сохраните изменения в файле и перезапустите службу ssh командой:

sudo systemctl restart ssh

Создание пары ключей

На локальном компьютере c MacOS/Linux введите команду в терминале для генерации ключа:

ssh-keygen

Если требуется дополнительная защита, можно указать кодовую фразу при создании ключа, так же можно пропустить данный пункт нажав Enter. После чего ключ будет сгенерирован.

Что бы увидеть ключ введите команду:

cat ~/.ssh/id_rsa.pub

Для загрузки ключа на сервер введите команду:

ssh-copy-id имя_пользователя@ip_удаленного_сервера -p2221(порт)

Примите подключение к серверу и введите пароль для доступа к удаленному серверу.

Для отключения снова перейдите в файл конфигурации ssh сервера:

sudo vi /etc/ssh/sshd_config

И укажите параметр:

PasswordAuthentication no

После чего перезапустите службу SSH.

Теперь вы можете подключаться к серверу с помощью пары ключей.

Настройка Netfilter и Iptables:

Для настройки установите набор утилит для управления Netfilter и Iptables (если он не установлен, зачастую он включен в дистрибутив ubuntu):

sudo apt install iptables


Для блокировки всех входящих соединений кроме разрешенных введите команду:

sudo iptables -P INPUT DROP 

Для разрешения входящих подключений по ssh c любых ip к серверу добавьте правила (в примере используется порт 2221):

sudo iptables -A INPUT -p tcp --dport 2221 -m state --state NEW -j ACCEPT 

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Для разрешения подключения с определенных ip или подсетей  используйте правила:

sudo iptables -A INPUT -p tcp -s ваша_сеть_или_ip --dport 2221 -m state --state NEW -j ACCEPT 

назад к списку
CorpSoft24
Адрес компании corpsoft24 127473, РФ, МОСКВА, УЛ. СЕЛЕЗНЕВСКАЯ, Д.32
загрузка карты...