Запустить SSH в фоновом режиме
Существует несколько способов запустить ssh соединение в фоновом режиме — то есть освободим текущий терминал.
-L, screen, tmux, nohup
Мне запустить ssh фоном из скрипта помог nohup, поэтому начнём с него
nohup ssh user@host «cd scripts;python3 my_script.py $ARG1 $ARG2; exit» &
Для чего это было нужно: Python скрипт сначала
открывал одно ssh соединение из
subprocess
там выполнялась команда для запуска
мониторинга потребления памяти
и больше от этого соединения ничего было не нужно, зато необходимо было
выполнять новые соединения с нагрузкой из другого скрипта.
Чтобы уйдя из первого подключения не оборвать мониторинг потребления памяти
перед ssh нужно было добавить nohup, а в самом конце поставить &
Меняем права в Линукс для объектов ФС
Если за замену пользователя и группы в Линукс отвечает команда chown, то для изменения прав доступа в системе предусмотрена команда chmod.
Она имеет следующий синтаксис:
chmod категория действие права объект
Что такое категории вы уже знаете, это владельцы файлов, группы и все остальные пользователи. Обозначаются категории как u, g и o соответственно. Для сразу всех категорий используется обозначение a. Категории можно группировать, например, ug станет означать, что мы хотим изменить права на объект для владельца и группы.
Действие — это изменение прав. Для присвоения прав используется ключ «=», для добавления указывается флаг «+», чтобы забрать права, нужно использовать ключ «-». С обозначениями прав вы также уже знакомы. Всё, можно формировать команды.
Сделаем для примера файл ntuser.ini недоступным для редактирования и исполнения:
chmod ug-wx ntuser.ini
В результате символьное представление прав стало таким: r—r—rwx. Как видите, права на файл были изменены для текущих владельца и группы, но не для категории «Все остальные», если же бы мы вместо ug указали ugo или a, право на чтение и исполнение потеряли бы все категории
Обратите внимание, что в данном случае мы не использовали sudo в начале команды, поскольку и так являемся владельцем. Если же бы изменяли права root или другого пользователя, использование sudo было бы обязательным
Ну вот, теперь в самых общих чертах вы знаете, чем отличаются организация прав доступа в Линукс от организации прав доступа в Windows, а самое главное, умеете просматривать и изменять права. Уверены, эти знания очень вам пригодятся, позволяя максимально эффективно управлять доступом к пользовательским и системным файлам.
chmod
chmod (change mode) – это широко используемая команда для изменения прав доступа к файлам и папкам в Linux. Она позволяет устанавливать права на доступ как пользователю, так и группе пользователей и для всех остальных.
Кроме этого, серверные язык программирования (вроде php или Python) предоставляют некую копию этой команды в том смысле, что у них схожа нотация установки прав.
Абсолютная и символьная нотация
chmod поддерживает 2 типа синтаксиса для изменения прав доступа:
- Абсолютная нотация – восьмеричное число, указывающее на то, какие биты доступа активировать(ны), например 0777
- Символьная нотация – сочетание букв и цифр устанавливающих бит доступа.
Восьмеричный код более естественен, он гарантирует установку особых прав доступа на файлы и директории, кроме этого, этот подход используется в языках программирования для программного изменения прав доступа.
Символьная нотация используется для добавления или удаления уже определенных прав. Существуют специальные сайты для перевода абсолютной нотации в символьную и наоборот, они позволяют лучше понять как работают все эти права доступа и команда chmod. Вот один из них:
Unix Permissions Calculator | Калькулятор прав доступа для Unix
Конвертация сертификатов
Рассмотрим простой пример: вы достали из
базы данных
сертификат
MIIC4jCCAc … A7A6Rpt8V9Q==
, но он не отформатирован и не проходит валидацию
Сертификат, конечно, длиннее, я поставил троеточие для экономии места и вашего времени.
Выполните
echo ‘MIIC4jC … 7A6Rpt8V9Q==’ | base64 -d | openssl x509 -inform der
Либо, если вам нужно работать с файлами — сохраните исходный сертифика в фай
raw_cert
echo MIIC4jC … 7A6Rpt8V9Q== > raw_cert
cat raw_cert | base64 -d | openssl x509 -inform der > cert
cat cert
——BEGIN CERTIFICATE——
MIIC4jC … 7A6Rpt8V9Q==
——END CERTIFICATE——
Такого же результата можно было добиться аккуратно добавив ——BEGIN CERTIFICATE—— в начало
и ——END CERTIFICATE—— в конец файла, но не всегда всё так просто.
Настройки безопасности клиента OpenSSH
Доступно множество клиентов SSH, поэтому рассказать о каждом из них в одной статье невозможно. Остановимся подробнее на инструменте клиента OpenSSH.
Конфигурация клиента
Клиент OpenSSH можно настроить тремя способами. Они обрабатываются по порядку и проверяются для каждого доступного параметра конфигурации. Выбирается первый подходящий.
- Настройки задаются через командную строку;
- Через файл конфигурации в домашней директории ();
- Через файл конфигурации для всех пользователей ().
Допустим, есть настройка А. Она задана для всей системы (3 способ) со значением «True». Пользователь michael установил для нее значение «False» (2 способ). В этом случае второе значение в приоритете, т.к. оно рассматривается перед настройками всей системы.
Просмотр активных настроек
Помните, как мы просматривали настройки для сервера ()? У клиента есть похожий инструмент.
ssh -G abc
Здесь abc является произвольным именем хоста. Или, возможно, не совсем произвольным. Можно использовать что угодно, включая реальное имя хоста. Клиент может использовать блоки Host и Match для настройки конфигурации группы систем или отдельной системы. Если хоста abc не существует, будут рассматриваться настройки по умолчанию.
Настройки SSH для отдельной системы
Допустим, есть система secureserver. Вместо того, чтобы работать на порте 22, она принимает соединения по SSH на порте 2222. Вместо применения в командной строке можно добавить блок Host в файл конфигурации. Для этого необходимо в каталоге .ssh домашней директории создать файл config ().
Затем создадим блок и определим нужные настройки.
Host secureserver Hostname hostname.example.org User mynickname Port 2222 MACs hmac-sha2-512 KexAlgorithms curve25519-sha256@libssh.org
Отступы необязательны, но рекомендуются, чтобы отличать, какие настройки к какому хосту относятся.
Какие же настройки следует определять в файле конфигурации клиента?
Рекомендуем использовать те, которые облегчат вам ежедневную работу. Если вы отдаете предпочтение безопасности, задайте надежные настройки по умолчанию. Если какой-то хост использует другой SSH-порт, создайте блок Host и переопределите его настройки нужным образом. Что касается KexAlgorithms, используйте более новые доступные алгоритмы. Это сильно зависит от версии OpenSSH на серверах. Если на сервере используется новая версия OpenSSH, то хорошо подойдет curve25519. Это высокоскоростной алгоритм на основе эллиптических кривых, который на данный момент считается безопасным.
Числовой метод
Синтаксис команды при использовании числового метода имеет следующий формат:
При использовании числового режима вы можете установить разрешения для всех трех классов пользователей (владельца, группы и всех остальных) одновременно.
может быть 3- или 4-значным числом.
Когда используется трехзначный номер, первая цифра представляет права владельца файла, вторая — группу файла, а последняя — всех остальных пользователей.
Каждое разрешение на запись, чтение и выполнение имеет следующее числовое значение:
- (читать) = 4
- (написать) = 2
- (выполнить) = 1
- нет разрешений = 0
Число разрешений для определенного класса пользователей представлено суммой значений разрешений для этой группы.
Чтобы узнать права доступа к файлу в числовом режиме, просто подсчитайте итоговые значения для всех классов пользователей. Например, чтобы предоставить права на чтение, запись и выполнение владельцу файла, права на чтение и выполнение для группы файла и только на чтение для всех остальных пользователей, вы должны сделать следующее:
- Владелец: rwx = 4 + 2 + 1 = 7
- Группа: rx = 4 + 0 + 1 = 5
- Другое: rx = 4 + 0 + 0 = 4
Используя метод выше, мы подходим к числу , которое представляет желаемые разрешения.
Для установки флагов , и используйте четырехзначный номер.
Когда используется четырехзначный номер, первая цифра имеет следующее значение:
- setuid = 4
- setgid = 2
- липкий = 1
- без изменений = 0
Следующие три цифры имеют то же значение, что и при использовании трехзначного номера.
Если первая цифра равна 0, ее можно опустить, а режим можно представить тремя цифрами. Числовой режим совпадает с .
Для вычисления числового режима вы также можете использовать другой метод (двоичный метод), но он немного сложнее. Знания, как вычислить числовой режим с использованием 4, 2 и 1, достаточно для большинства пользователей.
Вы можете проверить права доступа к файлу в числовом формате с помощью команды :
Вот несколько примеров того, как использовать команду в числовом режиме:
-
Предоставьте владельцу файла разрешения на чтение и запись и только на чтение членам группы и всем другим пользователям:
-
Предоставьте владельцу файла права на чтение, запись и выполнение, права на чтение и выполнение для членов группы и никаких разрешений для всех остальных пользователей:
-
Предоставьте разрешения на чтение, запись и выполнение, а также закрепите бит для данного каталога:
-
Рекурсивно установить разрешения на чтение, запись и выполнение для владельца файла и отсутствие разрешений для всех других пользователей в данном каталоге:
Пример. Скрипт. Копирование файла с удаленного компьютера.
Задача. На удаленном компьютере Anacron запускает один раз в сутки. Нужно создать скрипт который будет копировать удаленные backup-копии на локальный сервер бекапов. Скрипт запустим при помощи Использование планировщика cron в Linux.
$ ssh-keygen -t dsa $ ls id_dsa id_dsa.pub $ chmod 600 id_dsa
Поместим публичный ключ файл ~/.ssh/authorized_keys на удаленном компьютере.
$ ssh-copy-id -i id_dsa.pub USER@HOST
Скрипт:
#!/bin/bash # Copy PostgreSQL SFTP='/usr/bin/sftp' DIR='/home/backups_mbill_sql/' HOST='user@host:/home/backups_mbill_sql/' FILES="psql-`date +%d.%m.%Y`*.sql" $SFTP $HOST$FILES $DIR
Права доступа
Зачем настраивать права доступа?
Права доступа всегда необходимо назначать и разграничивать – это крайне важный момент обеспечения безопасности вашей Linux-системы. В случае, когда хакеру удастся получить доступ к одному из ваших пользователей, грамотно настроенные права доступа к файлам и каталогам не дадут ему возможности сделать много неприятностей. Иными словами, настройка прав доступа даст вам возможность максимально ограничить ваши данные от попадания в чужие руки (естественно, если речь не идет о root или sudo пользователях без ограничений, которые могут изменять любые права под себя).
Как смотреть права доступа?
Перед тем, как перейти к самому процессу изменения прав, нужно понять, как смотреть уже имеющиеся права у файлов и каталогов. Делать это можно при помощи команды ls и ключа –l.
# ls –l
После ввода этой команды вы увидите содержимое текущего каталога, а также информацию о владельце и правах доступа.
Пример отобразившейся информации:
total 32 drwxr-xr-- 2 root root 4096 May 7 2016 bin drwxr-xr-- 2 root root 4096 May 7 2016 etc drwxr-xr-- 2 root root 4096 Aug 11 2016 games drwxr-xr-- 2 user1 users May 5 12:00 Images drwxr-xr-- 2 root root 4096 Mar 23 2016 sbin -rw-r–-r-- 1 root root May 6 20:28 file1.txt -rw-r–-r-- 1 root root May 6 09:58 kdm.log
Разберемся, что означают эти строки.
Первая буква в выводе обозначает тип файла. Самые популярные обозначения, которые вы будете встречать чаще всего, это:
- — — обычный файл;
- d – каталог.
Помимо них есть и другие обозначения:
- b — файл блочного устройства;
- c — файл символьного устройства;
- s — доменное гнездо (socket);
- p — именованный канал (pipe);
- l — символическая ссылка (link).
Три следующие буквы, которые идут после первой, означают те права доступа, которые имеет пользователь-владелец этого файла или каталога. Расшифровываются они следующим образом:
- r – read – право на чтение;
- w – write – право на запись (изменение, в том числе и удаление);
- x – execute – право на выполнение этого файла (если речь о каталоге, то просмотр оглавления и поиск в нем);
- — (прочерк) вместо одной из букв говорит о том, что соответствующего права у вас нет.
Поэтому по записи
-rw-r–-r-- 1 root root May 6 20:28 file1.txt
можно сказать о том, что это обычный файл, владельцем которого является пользователь root, и он может читать и изменять этот файл.
Следующие три буквы, которые идут после определения прав для владельца файла или каталога, означают права доступа для группы, которая владеет этим файлом.
В рассматриваемом нами примере выше у группы root будут права только на чтение файла.
Наконец, последние три буквы – это права доступа для всех остальных пользователей и групп, в том числе для абсолютно посторонних людей (если доступ в каталоги и файлы открыт на других ресурсах).
Команда chmod
Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «change mode».
Синтаксис команды chmod следующий:
Разрешения можно задавать двумя способами:
- Числом
- Символами
Запись прав доступа числом
Пример:
В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.
- Первая цифра используется для указания прав доступа для пользователя.
- Вторая цифра для группы.
- Третья для всех остальных.
В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):
Число | Разрешения | Символьное обозначение |
---|---|---|
разрешения отсутствуют | — | |
1 | x — запуск | —x |
2 | w — изменение | -w- |
3 | x+w — запуск+изменение | -wx |
4 | r — чтение | r— |
5 | r+x — чтение+запуск | r-x |
6 | r+w — чтение+изменение | rw- |
7 | r+w+x — чтение+изменение+запуск | rwx |
Рассмотрим использование команды chmod с записью прав доступа числом на примере. Установим для файла права доступа 764:
Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 764, которые означают:
- 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
- 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
- 4 — права для всех остальных. Все остальные могут только читать файл (r).
Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».
В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:
Числовоеобозначение | «rwx»-обозначение | Описание |
---|---|---|
400 | -r——— | Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены. |
644 | -rw-r—r— | Все пользователи могут читать файл. Владелец может изменять файл. |
660 | -rw-rw—- | Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены. |
664 | -rw-rw-r— | Все могут читать файл. Владелец и группа могут изменять. |
666 | —rw-rw-rw— | Все могут читать и изменять файл. |
700 | -rwx—— | Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены. |
744 | -rwxr—r— | Все могут читать файл. Владелец может также изменять и запускать файл. |
755 | -rwxr-xr-x | Все могут читать и запускать файл. Владелец может также изменять файл. |
777 | -rwxrwxrwx | Все пользователи могут читать, изменять и редактировать файл. |
Запись прав доступа символами
Примеры:
Как вы можете видеть, в данном формате права доступа задаются символами rwx, но в синтаксисе используются и другие вспомогательные символы, например, математические операции «+» и «—» и такие символы как, например, «g» или «u».
Общий синтаксис можно записать примерно так:
Обозначения для владельцев файла следующие:
Обозначение | Описание |
---|---|
u | Владелец-пользователь. |
g | Группа. |
o | Все остальные. |
a | Вообще все. |
Математические операции означают следующее:
Оператор | Описание |
---|---|
+ | Добавляет к текущим правам доступа новое разрешение. |
— | Удаляет из текущих прав доступа определенное разрешение. |
= | Устанавливает полностью новые разрешения (предыдущие перезаписываются новыми). |
В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).
Рассмотрим примеры:
-
В данном случае мы не используем обозначения для владельцев, а значит разрешения устанавливаются для всех пользователей. «+x» означает — установить разрешение на запуск (x) файла для всех пользователей. Это эквивалентно выполнению команды: chmod a+x myfile1.
-
Здесь используется обозначение g и символ равенства «=». Это означает, что для группы мы устанавливаем права доступа на чтение и запись файла (rw).
-
Для владельца файла (u) мы удаляем разрешение на изменение (w) файла.
-
Разрешаем владельцу (u) и группе (g) запускать файл (x).
-
Это как раз тот случай, когда мы перечисляем владельцев через запятую и устанавливаем для них разрешения. Для владельца файла (u) мы разрешаем запуск файла, для группы (g) мы запрещаем изменять файл, для всех остальных (o) мы запрещаем читать файл.
Рекурсивное изменение прав доступа
Если необходимо изменить права доступа на все файлы в директории, включая вложенные директории, то для этого существует опция -R, что означает рекурсивное изменение прав доступа для директорий и их содержимого. Например, изменим права доступа у всех файлов в директории Mydir:
И еще один момент. Если пользователь не является владельцем файла, но ему нужно изменить права доступа у данного файла, то команду chmod необходимо выполнять с использованием sudo, например:
Настройка SSH
Настройка будет происходить под выделенный сервер, VDS, VPS на Debian, Ubuntu. Конфигурационный файл располагается тут: .
Если у вас обычный хостинг, всё и так должно быть настроено как надо, переходите к разделу авторизации по ключам.
По умолчанию, демон SSHD (именно в него мы вносим изменения) не нуждается в каких-либо настройках и работает нормально. Мы внесём лишь пару небольших изменений с целью ограничить доступ нежелательных лиц к серверу.
В результате внесения неправильных изменений в конфигурационный файл вы можете потерять доступ к серверу по ssh, поэтому убедитесь, что у вас есть альтернативные варианты для доступа к нему, например, с помощью панели управления ISPManager.
Дополнительные настройки безопасности
Есть и другие рекомендуемые конфигурации, чтобы избежать нежелательных подключений к нашему SSH-серверу. Эти соединения:
- Войти : Мы установим время, необходимое для ввода пароля, чтобы злоумышленнику не приходилось «много думать».
- MaxAuthTries : Количество разрешенных попыток при вводе пароля перед отключением.
- MaxStartups : Количество одновременных входов в систему с IP-адреса, чтобы избежать использования грубой силы в нескольких сеансах одновременно.
- AllowUsers : Это для создания белого списка пользователей. Этот параметр позволяет нам настроить пользователей, которые смогут подключиться. Это очень ограничительная мера, но в то же время очень безопасная, поскольку она блокирует все подключения пользователей, которых нет в списке. Пользователи, которые у нас здесь, смогут подключиться, а остальные — нет.
- DenyUsers : Аналогично предыдущему, но теперь мы создаем черный список. Пользователи, которые у нас здесь, не смогут подключиться, а остальные подключатся.
- AllowGroups / DenyUsers : Точно так же, как указано выше, но вместо создания черного / белого списка пользователей это группы пользователей.
Например, файл конфигурации для sshd_config будет следующим:
Дополнительной мерой безопасности является настройка алгоритмов обмена ключами, симметричного шифрования, а также конфигурации HMAC для проверки целостности. В настоящее время рекомендуется применять следующую конфигурацию для обеспечения очень высокой безопасности:
С этой конфигурацией у нас будут лучшие криптографические наборы для сервера, однако старые клиенты могут не иметь возможности подключиться, поскольку они не поддерживают эти алгоритмы
Мы должны принять во внимание эту деталь и проверить, какие алгоритмы совместимы, а какие нет
Если мы создали новые ключи RSA или DSA для ключей с большей битовой длиной, мы должны поместить их в файл конфигурации (или заменить предыдущие, и, таким образом, нам не придется трогать файл конфигурации), таким образом мы получим дополнительная безопасность, если, например, мы используем ключи RSA длиной 4096 бит или выше.
Чтобы сгенерировать новые 4096-битные ключи RSA, нам просто нужно выполнить следующую команду:
Если мы хотим сгенерировать новые ключи ECDSA (с максимальной длиной 512 бит) или ED25519, нам нужно будет ввести следующие команды:
Права доступа
Права доступа имеют всего 3 опции − чтение, запись и запуск на выполнение, устанавливаемые для владельца, группы и прочих пользователей. Для папки запуск на выполнение означает просмотр содержимого − списка файлов и вложенных папок.
Права можно задавать либо буквами r (read), w (Write) и x (eXecute), либо в двоичной системе (точнее в восьмеричной с использованием цифр от 0 до 7, но основано на двоичной системе).
Праву на чтение (r) соответствует значение 4, записи (w) − 2 и выполнению/просмотру файлов (x) − 1. Комбинируя эти значения, можно получать разные права. Например:
- 6 (4 + 2) − чтение и запись в файл, либо чтение и запись файлов из папки, но для конкретных файлов права доступа определяются отдельно;
- 5 (4 + 1) − чтение и выполнения файла, либо чтение из папки и просмотр её содержимого. Снова же, это не означает автоматического доступа к для вложенным объектам, а определяется их правами;
- 7 (4 + 2 + 1) − полный доступ, чтение, запись файла или файлов в папку и выполнение файла или просмотр содержимого папки.
Первыми задаются права доступа для владельца, затем для группы и в конце для всех прочих.
Обычно для документов и файлов данных устанавливаются права 644 или 664. Это означает, что владелец может читать и изменять файл (включая удаление), члены группы в первом случае только читать, а во втором изменять, а все прочие − только читать.
Для исполняемых файлов и папок обычно задаются права 755 или 775. Значения те же, что и в предыдущем абзаце плюс присутствует право на выполнение или просмотр списка вложенных объектов.
Если задавать права доступа буквами, то указываются нужные права в виде rwx, а то, что нужно пропустить, заменяется дефисом. То есть, 644 соответствует rw-r—r—, а 755 − rwxr-xr-x.
Использовать цифры или буквы − не имеет значения, это дело привычки. Хотя, при использовании букв можно быстро дать или убрать право на запись, указав «+w» или «-w», что проще, чем вычислять в голове числовые значения. Лично я использую оба способа.
Авторизация SSH по ключам
Намного безопаснее, удобнее и правильнее будет настроить ssh авторизацию без пароля. Для этого будет использоваться авторизация по ключу.
Для настройки нам понадобится файловый менеджер, например, Far Manager с плагином WinSCP, и Putty
Итак, вот инструкция:
-
Распаковываем архив, открываем PUTTYGEN:
Открываем PUTTYGEN (PuTTY Key Generator)
-
Вводим и выбираем всё как на скриншоте: и ключ длиной и жмём Generate
Во время генерации ключей водим мышкой по специальному полю под статусной строкой, чтобы пошла генерация ключей (она использует набор из координат мыши)Генерируем ключи
-
Теперь нужно заполнить (это пароль для доступа к приватному ключу). Заполнять не обязательно, но его наличие повысит безопасность, так как любой, кто имеет доступ к приватному ключу, сможет с его помощью авторизоваться на сервере по ssh:
Сохраняем ключи
- Сохраним приватный ключ где-нибудь в надёжном месте — . Назовём его, к примеру,
- А вот публичный ключ нужно сохранить на сервере, куда устанавливаем доступ — Назовём его . Авторизуемся по ssh по паролю и переходим в директорию пользователя, под которым будет происходить авторизация.
В целях безопасности нежелательно работать под рутом, но я покажу пример команд для root, а вы уже скорректируете под своё имя пользователя
Итак, копируем файл в .
Далее нужно импортировать данные в файлssh-keygen -i -f /root/.ssh/sheensay.ru.pub >> /root/.ssh/authorized_keys
После можно удалить
- Осталось настроить подключение. Я пользуюсь Far Manager в связке с плагином WinSCP.
имеет встроенный NetBox, последователя WinSCP, так что, ничего дополнительно устанавливать не придётся.
Открываем Far Manager, Alt + F1, выбираем , далее Shift + F4 и настроим наше подключение. Допустим, мы сохранили приватный файл в
При настройке нужно будет указать IP или доменное имя на нём для доступа к серверу, порт, на котором висит SSH, имя пользователя и путь к приватному файлу-ключуНастройка подключения по SSH
- Подключаемся. Если при генерации ключей вы вводили пароль, то в этом случае при подключении у вас будет запрашивать пароль к приватному файлу.
Подключение настроено. Если что-то сделали не так, при авторизации появится ошибка , то есть Сервер не принял наш ключ. В этом случае пройдитесь по всем пунктам последовательно и поищите ошибку
Отключить авторизацию по паролю
Теперь, когда всё настроено, совсем не лишним будет отключить авторизацию по паролю. Для этого внесём изменения в конфигурационный файл:
PasswordAuthentication no
Отключение аутентификации по паролю
Если вы создали ключи SSH, вы можете повысить уровень безопасности вашего сервера, отключив аутентификацию только по паролю. Помимо консоли единственным способом входа на ваш сервер будет использование приватного ключа, который используется в паре с публичным ключом, установленным на сервере.
Предупреждение: перед выполнением этих действий необходимо убедиться, что публичный ключ установлен на сервере. В противном случае вы заблокируете доступ к серверу!
Откройте файл конфигурации , воспользовавшись пользователем root или пользователем с привилегиями sudo:
Найдите строку и раскомментируйте ее, удалив символ в начале строки. Теперь вы можете указать значение :
/etc/ssh/sshd_config
Вы должны также изменить значения двух других настроек (если вы не вносили изменения в этот файл ранее) — и . Значения устанавливаются по умолчанию и выглядят следующим образом:
/etc/ssh/sshd_config
После внесения изменений сохраните и закройте файл.
Теперь нужно перезапустить демон SSH:
Теперь аутентификация по паролю должна быть отключена, а ваш сервер должен быть доступен только с помощью аутентификации по ключу SSH.
Настройка SSH
При изменении конфигурации SSH вы меняете настройки сервера sshd.
В Ubuntu основной файл конфигурации sshd находится в каталоге .
Выполните резервное копирование текущей версии этого файла перед началом редактирования:
Откройте файл в текстовом редакторе:
Скорее всего, вы захотите оставить большинство опций в этом файле без изменений
Однако существует несколько настроек, на которые вам стоит обратить особое внимание:. /etc/ssh/sshd_config
/etc/ssh/sshd_config
Объявление порта указывает, подключения к какому порту будет отслеживать сервер sshd. По умолчанию используется порт . Вам, скорее всего, не придется изменять данную настройку, если только у вас нет конкретных причин для иного решения. Если вы решите изменить порт, позже мы покажем, как подключиться к новому порту.
/etc/ssh/sshd_config
В объявлениях ключей хоста указывается, где нужно искать глобальные ключи хоста. Мы обсудим, что такое ключ хоста, позже.
/etc/ssh/sshd_config
Эти две строки указывают на уровень логирования, который необходимо использовать.
Если вы сталкиваетесь с проблемами при работе с SSH, увеличение объема логируемых данных может быть хорошим решением, которое поможет понять, в чем заключается проблема.
/etc/ssh/sshd_config
Эти параметры определяют некоторые данные для входа в систему.
Опция определяет количество секунд, в течение которых следует сохранять подключение при отсутствии успешных попыток входа в систему.
Возможно, вам может быть полезным задать для этого параметра чуть большее количество времени, чем то, которое вам обычно требуется для входа.
определяет, разрешен ли вход с помощью пользователя с правами root.
В большинстве случаев необходимо изменить значение на , если вы создали учетную запись пользователя, которая имеет доступ к высокому уровню привилегий (через или ) и может использоваться для входа в систему через ssh.
— это защитник, который будет препятствовать попыткам входа, если файлы аутентификации доступны для чтения всем.
Он позволяет предотвратить попытки входа в систему, когда файлы конфигурации не находятся в безопасном состоянии.
/etc/ssh/sshd_config
Эти параметры используются для настройки такой возможности, как X11 Forwarding. X11 Forwarding позволяет просматривать графический пользовательский интерфейс (GUI) удаленной системы на локальной системе.
Эта функция должна быть активирована на сервере и передана клиенту SSH во время подключения с помощью опции .
После внесения изменений сохраните и закройте файл, введя , , а затем нажмите .
Если вы внесли изменения в какие-либо настройки в файле , необходимо перезапустить ваш сервер sshd, чтобы изменения вступили в силу:
Вы должны тщательно протестировать ваши изменения, чтобы убедиться, что все работает так, как вы ожидаете.
Вы можете использовать несколько активных сеансов во время внесения изменений. Это позволит вам вернуться к первоначальной конфигурации, если это потребуется.