MyTetra Share
Делитесь знаниями!
SSH — настройка доступа к серверу, команды и подключение без паролей
Время создания: 07.03.2021 18:33
Автор: alensav
Текстовые метки: SSH — настройка доступа к серверу, команды и подключение без паролей
Раздел: MyTetra - Ubuntu_Command
Запись: alensav/MyTetra2/main/base/1615131211djmzqxvxj5/text.html на raw.githubusercontent.com

SSH — настройка доступа к серверу, команды и подключение без паролей

09.05.2019 комментариев 3

Рекомендую хостинг Beget

Бесплатный хостинг без звёздочек и рекламы

  • Ч то такое SSH
  • Настройка SSH
  • Как ограничить доступ по SSH
  • Сменить порт
  • Запретить связь по старому протоколу
  • Запретить авторизацию под root
  • Уменьшить число попыток авторизации
  • Уменьшить время ожидания авторизации
  • Закрыть доступ по IP
  • Ещё один способ ограничения доступа по IP
  • Авторизация SSH по ключам
  • Отключить авторизацию по паролю
  • Как перезагрузить SSH

Что такое SSH

SSH (Secure Shell) — это сетевой протокол, предназначенный для удалённого управления сервером и передачи данных по зашифрованным TCP соединениям. Большинство хостингов , даже виртуальных, сегодня предоставляет доступ как по FTP, так и по SSH. На мой взгляд, это здорово, SSH намного удобнее и безопаснее в использовании.

Настройка SSH

У сайта sheensay.ru есть свой канал в Telegram - @sheensayru.
В нём публикуются ссылки на новые материалы сайта и интересные, по моему мнению, публикации.
Подписывайтесь и будьте в курсе последних событий.
С пасибо, уже подписался

Настройка будет происходить под выделенный сервер, VDS, VPS на Debian, Ubuntu. Конфигурационный файл располагается тут: /etc/ssh/sshd_config.
Если у вас обычный хостинг, всё и так должно быть настроено как надо, переходите к разделу
авторизации по ключам .

По умолчанию, демон SSHD (именно в него мы вносим изменения) не нуждается в каких-либо настройках и работает нормально. Мы внесём лишь пару небольших изменений с целью ограничить доступ нежелательных лиц к серверу.

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

Как ограничить доступ по SSH

Все изменения вносятся в /etc/ssh/sshd_config
Чтобы изменения вступили в силу, необходимо
перезагрузить SSH

Сменить порт


1

Port 9724

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

Запретить связь по старому протоколу

Здесь мы определяем, что связь возможна только по протоколу v2


1

Protocol 2

Запретить авторизацию под root


1

PermitRootLogin no

По умолчанию no. Если yes, можно авторизовываться под рутом. Под root работать небезопасно, лучше создать своего пользователя и работать под ним.

Если вы авторизованы не под root, перед всеми консольными командами нужно добавлять sudo — расшифровывается как Substitute User and DOподмени юзера и делай (под ним). Например, позволяет исполнять команды от имени суперпользователя root.

Уменьшить число попыток авторизации


1

MaxAuthTries 2

Количество попыток ввода пароля. По умолчанию 6. При неудачном переборе сеанс связи обрывается.

Уменьшить время ожидания авторизации


1

LoginGraceTime 30s

По умолчанию, 120 секунд может длиться сеанс авторизации. По истечению этого времени он обрывается. 2 минуты на авторизацию — это перебор, всё это время сервер держит связь открытой, что очень нерационально. Полминуты за глаза хватит.

Закрыть доступ по IP

Прежде чем настраивать ограничения по IP, убедитесь, что в случае ошибки в настройке и последующего бана собственного IP у вас останется альтернативный способ вернуть доступ к серверу

Если доступ нужен только вам, самым простым и надёжным будет закрыть доступ отовсюду, кроме вашего IP или, если он динамический, то диапазона IP.

  1. Открываем /etc/hosts.allow и добавляем туда

  2. 1

    SSHD: 192.168.1.1

    где 192.168.1.1 — ваш IP. Если у вас динамический IP, определите IP с маской подсети и запишите Вашу подсеть вместо IP, например:


    1

    SSHD: 192.168.0.0/16

  3. Открываем /etc/hosts.deny и добавляем туда:


1

SSHD: ALL

Теперь никто, кроме вас, не сможет авторизоваться на сервере по SSH.

Ещё один способ ограничения доступа по IP

Можно воспользоваться следующей директивой:


1

AllowUsers = *@1.2.3.4

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

Авторизация SSH по ключам

Намного безопаснее, удобнее и правильнее будет настроить ssh авторизацию без пароля. Для этого будет использоваться авторизация по ключу.

Для настройки нам понадобится файловый менеджер, например, Far Manager с плагином WinSCP, и Putty

Итак, вот инструкция:

  1. Распаковываем архив, открываем PUTTYGEN:
  2. Открываем PUTTYGEN (PuTTY Key Generator)

  3. Вводим и выбираем всё как на скриншоте: SSH-2 RSA и ключ длиной 2048 и жмём Generate
    Во время генерации ключей водим мышкой по специальному полю под статусной строкой, чтобы пошла генерация ключей (она использует набор из координат мыши)
  4. Генерируем ключи

  5. Теперь нужно заполнить Key Passphrase (это пароль для доступа к приватному ключу). Заполнять не обязательно, но его наличие повысит безопасность, так как любой, кто имеет доступ к приватному ключу, сможет с его помощью авторизоваться на сервере по ssh:
  6. Сохраняем ключи

  7. Сохраним приватный ключ где-нибудь в надёжном месте — Save private key. Назовём его, к примеру, sheensay.ru.ppk
  8. А вот публичный ключ нужно сохранить на сервере, куда устанавливаем доступ — Save public key Назовём его sheensay.ru.pub. Авторизуемся по ssh по паролю и переходим в директорию пользователя, под которым будет происходить авторизация.
  9. В целях безопасности нежелательно работать под рутом, но я покажу пример команд для root, а вы уже скорректируете под своё имя пользователя

    Итак, копируем файл sheensay.ru.pub в /root/.ssh/.
    Далее нужно импортировать данные в файл
    authorized_keys


    1

    ssh-keygen -i -f /root/.ssh/sheensay.ru.pub >> /root/.ssh/authorized_keys

    После sheensay.ru.pub можно удалить

  10. Осталось настроить подключение. Я пользуюсь Far Manager в связке с плагином WinSCP.
  11. Far Manager 3 имеет встроенный NetBox, последователя WinSCP, так что, ничего дополнительно устанавливать не придётся.

    Открываем Far Manager, Alt + F1, выбираем WinSCP, далее Shift + F4 и настроим наше подключение. Допустим, мы сохранили приватный файл в D:/SSH/
    При настройке нужно будет указать IP или доменное имя на нём для доступа к серверу, порт, на котором висит SSH, имя пользователя и путь к приватному файлу-ключу

    Настройка подключения по SSH

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

Подключение настроено. Если что-то сделали не так, при авторизации появится ошибка Server refused our key, то есть Сервер не принял наш ключ. В этом случае пройдитесь по всем пунктам последовательно и поищите ошибку

Отключить авторизацию по паролю

Теперь, когда всё настроено, совсем не лишним будет отключить авторизацию по паролю. Для этого внесём изменения в конфигурационный файл:


1

PasswordAuthentication no

Как перезагрузить SSH

  • Debian, Ubuntu

  • 1

    service ssh restart

    или


    1

    /etc/init.d/ssh restart

  • CentOS, FreeBSD, Fedora


1

service sshd restart

или


1

/etc/init.d/sshd restart

Хостинг, который я рекомендую:

  • Beget - виртуальный хостинг. Отличный вариант для тех, кто не хочет отвлекаться на настройку хостинга и полностью полагается на качественный сервис. Есть полностью бесплатный тариф для новичков.
  • IHOR - VDS VPS с дата-центром в Москве - крайне низкий пинг для Рунета. Подойдёт тем, кто хочет контролировать свой сервер и не переплачивать за это. От 100 рублей в месяц. Бесплатный ISPmanager на тарифах от 600 рублей в месяц.
  • DigitalOcean - зарубежный облачный хостинг. Самый качественный сервис из существующих с аптаймом 99,9%. Для тех, кому важно качество, стабильность и скорость работы. $10 на счёт, хватает на 2 бесплатных месяца
  • Contabo - очень дешёвые VDS: 2 ядра Xeon, 4 Гб оперативки и 300 Гб SSD+HDD за 3,99 евро в месяц!

С пасибо, не интересует

к омментариев 3

Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования