Авторизация по ключу ssh
Содержание:
- Содержание
- Как подключиться по SSH
- Step 1 — Create the RSA Key Pair
- Что представляет собой протокол SSH
- Что такое SSH?
- Аутентификация
- Client-Side Options
- Основные команды SFTP
- Basic Syntax
- Шаг 4 — Отключение аутентификации на сервере с помощью пароля
- Как отключить тестовый режим в windows 7. Включение и выключение тестового режима Windows
- 3: Аутентификация по SSH-ключам
- Как открыть Центр уведомлений в macOS
- Как подключиться по SSH с помощью пароля
- Шаг 1 — Создание пары ключей
- Шаг 3 — Аутентификация на вашем сервере Ubuntu с помощью ключей SSH
- Step 1 — Create the RSA Key Pair
- Примеры
- Какие настройки SSH по умолчанию стоит заменить
- Не инициализируется жесткий диск: находим причины и устраняем проблему
- Conclusion #
- Заключение
Содержание
Как подключиться по SSH
Для подключения по SSH нам необходимо знать такие данные:
- ip адрес сервера, к которому мы собираемся подключится;
- порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
- имя и пароль пользователя на удаленном сервере.
Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.
1. Подключение через SSH в Linux
В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:
$ ssh имя_пользователя@айпи_адрес
Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:
$ ssh имя_пользователя@айпи_адрес -p порт
Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:
Или, с нестандартным портом:
Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:
Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:
Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:
Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:
Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:
А в CentOS/Fedora:
Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.
Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.
2. Подключение через SSH в Windows
Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:
Затем выберите Управление дополнительными компонентами:
Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:
Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.
После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:
Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:
ssh имя_пользователя@айпи_адрес -p порт
Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:
Утилита предложит добавить устройство в список известных:
Затем предложит ввести пароль:
Все следующие команды будут выполняться уже на Raspberry Pi или другой удаленной машине, к которой вы подключились.
Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.
Step 1 — Create the RSA Key Pair
The first step is to create a key pair on the client machine (usually your computer):
By default will create a 2048-bit RSA key pair, which is secure enough for most use cases (you may optionally pass in the flag to create a larger 4096-bit key).
After entering the command, you should see the following output:
Press to save the key pair into the subdirectory in your home directory, or specify an alternate path.
If you had previously generated an SSH key pair, you may see the following prompt:
If you choose to overwrite the key on disk, you will not be able to authenticate using the previous key anymore. Be very careful when selecting yes, as this is a destructive process that cannot be reversed.
You should then see the following prompt:
Here you optionally may enter a secure passphrase, which is highly recommended. A passphrase adds an additional layer of security to prevent unauthorized users from logging in. To learn more about security, consult our tutorial on How To Configure SSH Key-Based Authentication on a Linux Server.
You should then see the following output:
You now have a public and private key that you can use to authenticate. The next step is to place the public key on your server so that you can use SSH-key-based authentication to log in.
Что представляет собой протокол SSH
Протокол Secure Shell, известный также как SSH — специальный протокол для безопасного удалённого доступа к компьютеру через сетевое подключение. Протокол имеет много возможностей, в том числе организацию защищённого подключения, запуск командной строки терминала на компьютере, к которому вы подключаетесь удалённо, запуск приложений с графическим интерфейсом, передача файлов и развёртывание приватных сетей.
Существует множество утилит, отвечающих за управлением протоколом. На операционной системе Ubuntu самым известным является Open SSH. Это полностью свободный продукт с открытой лицензией и полным набором самых необходимых функций. Клиент для управления SSH-подключением уже включён в дистрибутив Ubuntu, вам нужно будет лишь установить и настроить серверные компоненты. Управление осуществляется через команды в терминале.
Что такое SSH?
SSH или Secure Shell — это протокол безопасного доступа из одного компьютера к другому по сети. У протокола SSH очень много возможностей. Вы можете создавать защищенные соединения между компьютерами, открывать командную строку на удаленном компьютере, запускать графические программы, передавать файлы и организовывать частные сети.
За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.
Аутентификация
Служба OpenSSH SSH поддерживает версии протокола SSH 1 и 2. Запретить использование одного из протоколов можно, указав в параметре Protocol файла sshd_config. Протокол 2 поддерживает ключи RSA и DSA; протокол 1 поддерживает только ключи RSA. Независимо от протокола, каждый подключающийся хост имеет собственный, обычно 2048-битный идентифицирующий его ключ.
Для протокола версии 1 подтверждение субъекта сервера обеспечивается 768-битным ключом, который генерируется при запуске сервера. Ключ генерируется заново каждый час, при условии его использования, и не хранится на диске. При получении запроса на подключение со стороны клиента служба посылает в ответ свой открытый ключ и свои ключи. Клиент сравнивает ключ хоста RSA со своими данными, чтобы убедиться в том, что это тот же сервер. Затем клиент генерирует 256-битное произвольное число, шифрует его при помощи обоих ключей (своего и сервера) и отправляет результат серверу. Это число становится ключом сеанса, и с его помощью выполняется кодирование всей последующих данных, по согласованному методу — Blowfish или 3DES (клиент выбирает метод из предложенных сервером). В настоящее время по умолчанию используется 3DES.
Для протокола версии 2 подтверждение субъекта сервера обеспечивается по схеме Диффи—Хеллмана, в результате которой также получается общий ключ сеанса. Дальнейший обмен данными шифруется симметричным кодом, 128-битным AES, Blowfish, 3DES, CAST128, Arcfour, 192-битным AES или 256-битным AES, который выбирает клиент из предложенных сервером. Кроме того, целостность передаваемых данных обеспечивается кодом подтверждения подлинности сообщения (hmac-sha1 или hmac-md5).
Далее, сервер и клиент переходят в режим аутентификации. Клиент пытается аутентифицировать себя по своему хосту, открытому ключу, паролю или с помощью беспарольного механизма («вызов-ответ»).
Независимо от типа аутентификации служба проверяет доступность соответствующей учётной записи в системе. Так, она может быть заблокирована посредством добавления её в параметр DenyUsers или её группы в DenyGroups. Механизм общесистемной блокировки учётной записи выполняется разными системами по-разному. Одни системы ведут собственную базу данных учётных записей (AIX), другие вносят соответствующие изменения в поля файла passwd (‘*LK*’ — Solaris и UnixWare, ‘*’ — на HP-UX, ‘Nologin’ — Tru64, ‘*LOCKED*’ во FreeBSD и ‘!!’ в GNU/Linux). Для запрета только аутентификации по паролю укажите в файле passwd ‘NP’ или ‘*NP*’.
После успешной аутентификации себя клиентом связь переходит в режим подготовки сеанса. В этот момент клиент может запросить такие вещи, как выделение псевдо-терминала, перенаправление соединения Х11, перенаправление соединения TCP/IP или перенаправление соединения агента аутентификации через защищённый канал.
Наконец, клиент запрашивает оболочку или выполнение команды, после чего стороны входят в режим сеанса. В этом режиме, каждая из сторон в любой момент может пересылать данные и эти данные будут переданы оболочке или команде на стороне сервера и на пользовательский терминал соответственно.
По завершении работы пользовательской программы и закрытии всех перенаправленных Х11 и других соединений сервер посылает клиенту команду со статусом выхода и сеанс завершается.
Client-Side Options
There are a number of optional flags that you can select when connecting through SSH.
Some of these may be necessary to match the settings in the remote host’s configuration.
For instance, if you changed the port number in your configuration, you will need to match that port on the client-side by typing:
If you only wish to execute a single command on a remote system, you can specify it after the host like so:
You will connect to the remote machine, authenticate, and the command will be executed.
As we said before, if X11 forwarding is enabled on both computers, you can access that functionality by typing:
Providing you have the appropriate tools on your computer, GUI programs that you use on the remote system will now open their window on your local system.
Основные команды SFTP
Оказавшись в командной строке можно получить список доступных команд с помощью команды
> help Available commands: bye Quit sftp cd path Change remote directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' df Display statistics for current directory or filesystem containing 'path' exit Quit sftp get remote Download file reget remote Resume download file reput remote Resume upload file help Display this help text lcd path Change local directory to 'path' lls ] Display local directory listing lmkdir path Create local directory ln oldpath newpath Link remote file (-s for symlink) lpwd Print local working directory ls Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory progress Toggle display of progress meter put local Upload file pwd Display remote working directory quit Quit sftp rename oldpath newpath Rename remote file rm path Delete remote file rmdir path Remove remote directory symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help
Текущий рабочий каталог:
> pwd # удаленный рабочий каталог > lpwd # локальный рабочий каталог
Изменить рабочую директорию:
> cd uploads # сменить директорию на удаленной системе > lcd uploads # сменить директорию на локальной системе
Список файлов и директорий:
> ls # список на удаленной системе > lls # список на локальной системе
Загрузить на удаленную систему файл или директорию:
> put image.jpg # загрузить файл > put -r images/ # загрузить директорию
Скачать с удаленной системы файл или директорию:
> get image.jpg # скачать файл > get -r images/ # скачать директорию
Создать директорию:
> mkdir images # создать директорию на удаленной системе > lmkdir images # создать директорию на локальной системе
Удалить директорию:
> rmdir images # удалить директорию на удаленной системе > !rmdir images # удалить директорию на локальной системе
Выполнить произвольную команду на локальной системе:
> !команда
Выполнить несколько команд на локальной системе:
> ! # временно выходим из командной строки sftp $ команда # выполняем команду в shell (bash) $ команда # выполняем команду в shell (bash) $ exit # возвращаемся к командной строке sftp >
Завершить сеанс:
> exit # или quit или bye
Поиск:
CLI • Linux • SSH • Ubuntu • Директория • Конфигурация • Настройка • Сервер • Файл • SFTP
Basic Syntax
To connect to a remote system using SSH, we’ll use the command. The most basic form of the command is:
The in this example is the IP address or domain name that you are trying to connect to.
This command assumes that your username on the remote system is the same as your username on your local system.
If your username is different on the remote system, you can specify it by using this syntax:
Once you have connected to the server, you may be asked to verify your identity by providing a password. Later, we will cover how to generate keys to use instead of passwords.
To exit the ssh session and return back into your local shell session, type:
Шаг 4 — Отключение аутентификации на сервере с помощью пароля
Если вы смогли войти в свою учетную запись с помощью SSH без пароля, это означает, что вы успешно настроили для своей учетной записи аутентификацию на базе ключей SSH. Однако механизм аутентификации по паролю все еще активен, то есть ваш сервер может подвергнуться атаке посредством простого перебора паролей.
Прежде чем выполнять описанные в настоящем разделе шаги, убедитесь, что вы настроили аутентификацию на базе ключей SSH для учетной записи root на этом сервере, или (предпочтительно) вы настроили аутентификацию на базе ключей SSH для учетной записи сервера без привилегий root и с привилегиями
На этом шаге вход в систему по паролю будет заблокирован, поэтому очень важно сохранить возможность доступа с правами администратора
Подтвердив права администратора для удаленной учетной записи, выполните вход на удаленный сервер с помощью ключей SSH как пользователь с привилегиями root или как пользователь с привилегиями . Затем откройте файл конфигурации демона SSH:
Найдите в файле директиву . Она может быть помечена как комментарий. Удалите символ комментария в начале строки и установите значение «no». После этого вы не сможете выполнять вход в систему через SSH с использованием паролей учетной записи:
/etc/ssh/sshd_config
Сохраните и закройте файл, нажав + , затем нажмите для подтверждения сохранения файла, а затем нажмите для выхода из nano. Для фактического внесения этих изменений нужно перезапустить службу :
В качестве меры предосторожности откройте новое окно терминала и проверьте работу службы SSH, прежде чем закрывать этот сеанс:
После проверки работы службы SSH вы сможете безопасно закрыть все текущие сеансы сервера.
Теперь демон SSH на вашем сервере Ubuntu будет реагировать только на ключи SSH. Аутентификация на базе паролей успешно отключена.
Как отключить тестовый режим в windows 7. Включение и выключение тестового режима Windows
3: Аутентификация по SSH-ключам
Скопировав открытый ключ, вы сможете войти на удаленный хост без пароля учетной записи удаленного пользователя.
Введите:
Если вы впервые подключаетесь к этому хосту (если вы копировали ключ вручную), вы можете увидеть такое предупреждение:
Это означает, что ваш локальный компьютер не распознает удаленный хост. Введите yes и нажмите Enter.
Если вы не установили парольную фразу для закрытого ключа, вы сразу же войдете в систему
Если вы создали парольную фразу, вам будет предложено ввести ее сейчас (обратите внимание, что вводимая вами фраза не будет отображаться в терминале из соображений безопасности). После аутентификации в новом сеансе оболочки вы получите доступ к удаленному пользователю
Если аутентификация по ключам прошла успешно, можно отключить парольную аутентификацию, чтобы повысить безопасность удаленной машины.
Как открыть Центр уведомлений в macOS
Как подключиться по SSH с помощью пароля
Обычное подключение по SSH без дополнительных опций выглядит очень просто. Достаточно ввести логин, IP сервера и пароль. Допустим хостинг-провайдер нам выдал следующие данные после покупки сервера:
- IP-адрес сервера: 80.90.255.255
- Логин: root
- Пароль: xvFkWsIys
Исходя из этого мы формулируем команду в следующем виде
Если подключение осуществляется впервые, то утилита задаст вопрос, стоит ли добавлять в список доверенных хостов. Соглашаемся, набрав и нажав Enter.
:~$ ssh The authenticity of host '80.90.255.255 (80.90.255.255)' can't be established. ECDSA key fingerprint is SHA256:8CbYK1TqAF3f1iSYLoUjSkurPQ0ve5I0GunB7lnPs+k. Are you sure you want to continue connecting (yes/no)? yes
Далее утилита запросит пароль пользователя
's password:
Его можно ввести вручную или вставить из буфера обмена. При вводе пароля не будут появляться звездочки или какие-либо условные символы, это нормально. После ввода пароля вы попадаете в командную строку сервера, к которому подключались. Это значит, что теперь все введенные команды будут выполнятся именно на сервере.
's password: Linux debian9 5.4.40-04224-g891a6cce2d44 #1 SMP PREEMPT Tue Jun 23 20:21:29 PDT 2020 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. :~#
Шаг 1 — Создание пары ключей
Первый шаг — создание пары ключей на клиентской системе (обычно на вашем компьютере):
По умолчанию последние версии будут создавать 3072-битную пару ключей RSA, которая достаточно безопасна для большинства сценариев использования (вы можете также добавить к этой команде флаг для получения 4096-битного ключа).
После ввода команды вы должны увидеть следующее:
Нажмите ENTER, чтобы сохранить пару ключей в подкаталог домашнего каталога или укажите альтернативный путь.
Если вы ранее создали пару ключей SSH, вы можете увидеть следующую строку:
Если вы решите перезаписать ключ на диске, вы больше не сможете выполнять аутентификацию с помощью предыдущего ключа. Будьте осторожны при выборе варианта yes, потому что этот процесс уничтожает ключи, и его нельзя отменить.
Затем вы должны увидеть следующую строку:
Здесь вы можете ввести защищенный пароль, что настоятельно рекомендуется сделать. Пароль добавляет дополнительный уровень безопасности для защиты от входа в систему несанкционированных пользователей.
Вывод затем должен выглядеть примерно следующим образом:
Теперь у вас есть открытый и закрытый ключи, которые вы можете использовать для аутентификации. Наследующем шаге вам нужно разместить открытый ключ на сервере, чтобы вы могли использовать аутентификацию на базе ключей SSH для входа в систему.
Шаг 3 — Аутентификация на вашем сервере Ubuntu с помощью ключей SSH
Если вы успешно выполнили одну из вышеописанных процедур, вы сможете войти на удаленный хост без пароля учетной записи для удаленного хоста.
Базовый процесс выглядит аналогично:
Если вы подключаетесь к этому хосту первый раз (если вы используете указанный выше последний метод), вы сможете увидеть следующее:
Это означает, что ваш локальный компьютер не распознает удаленный хост. Введите «yes» и нажмите , чтобы продолжить.
Если вы не указывали пароль для своего закрытого ключа, вы войдете в систему немедленно. Если вы указали пароль закрытого ключа при создании ключа, вам будет предложено ввести его сейчас (для безопасности вводимые символы не будут отображаться в сеансе терминала). После аутентификации в оболочке откроется новый сеанс с настроенной учетной записью на сервере Ubuntu.
Если аутентификация на базе ключа выполнена успешно, вы можете перейти к изучению дополнительных возможностей защиты системы посредством отключения аутентификации с помощью пароля.
Step 1 — Create the RSA Key Pair
The first step is to create a key pair on the client machine (usually your computer):
By default will create a 2048-bit RSA key pair, which is secure enough for most use cases (you may optionally pass in the flag to create a larger 4096-bit key).
After entering the command, you should see the following output:
Press enter to save the key pair into the subdirectory in your home directory, or specify an alternate path.
If you had previously generated an SSH key pair, you may see the following prompt:
If you choose to overwrite the key on disk, you will not be able to authenticate using the previous key anymore. Be very careful when selecting yes, as this is a destructive process that cannot be reversed.
You should then see the following prompt:
Here you optionally may enter a secure passphrase, which is highly recommended. A passphrase adds an additional layer of security to prevent unauthorized users from logging in. To learn more about security, consult our tutorial on How To Configure SSH Key-Based Authentication on a Linux Server.
You should then see the following output:
You now have a public and private key that you can use to authenticate. The next step is to place the public key on your server so that you can use SSH-key-based authentication to log in.
Примеры
Существует большое количество методов использования утилиты. Большинство из них неизвестны современному пользователю операционной системы Линукс.
Рассмотрим подключение к серверу.
При присоединении с использованием утилиты в командной строке потребуется ввести:
Например, нам надо подключиться к компьютеру в локальной сети debian, под пользователем slon.
Все современные пользователи первоначально присоединяются к удаленной хосту (компьютеру). Только после этого они вводят требуемые команды. Утилита ssh дает возможность выполнить необходимую задачу без обязательного запуска терминала на удаленной машине.
Предположим нам надо запустить команду top на удаленном компьютере.
К примеру, требуется запустить скрипт bash на удаленном компьютере. Сам файл bash.sh находится на локальном компьютере . Для этих целей необходимо провести перенаправление ввода bash.
С использованием утилиты пользователю предоставляется возможность сохранить бекап локального диска на удаленной серверной машине. Для этих целей нужно перенаправлять вывод dd с использованием оператора перенаправления. Далее вывод dd сохраняется в файле copiadiska.img.
Для восстановления прежнего состояния локального диска используется созданная ранее копия. Для этого в командной строке нужно ввести:
При использовании команды ssh для входа в удаленный сервер нередко требуется пароль. Это создает дополнительные неудобства, но дает возможность обезопасить вас от злоумышленников. Несмотря на защиту, пароль можно подобрать.
Наиболее надежным методом аутентификации является использование нескольких ключей RSA. Один из них хранится на ПК, а второй является публичным. Он применяется пользователем при авторизации.
Это поведение весьма просто настроить. Изначально необходимо задать ключ. Для этого потребуется ввести:
При создании ключа пользователю необходимо ответить на определённый перечень вопросов. Если вы желаете присоединиться к удаленной машине без обязательного введения пароля, в области «Passphare» нужно оставить пустое место.
Далее ключ отправляется на удаленную машину, вводится:
После этого ключ будет сохранен. Если попробовать присоединиться к серверу повторно, вы увидите, что введение пароля уже не требуется.
Стоит отметить, размещать пароли в обыденных текстовых файлах не стоит. Ими могут воспользоваться злоумышленники Но если это потребуется, такой вариант возможен. Чтобы сохранить пароль, необходимо воспользоваться оператором, используемым при перенаправлении Bash. Введите в командной строке:
При запуске команды ssh на экране монитора нередко всплывает приветствие. Допускается его изменение. За такую функцию отвечает специальный файл «/etc/issue». Вам потребуется просто открыть данный файл и указать необходимо приветствие. Для этого вводится команда:
В некоторых случаях пользователю ОС Линукс может потребоваться информация о неудачных попытках подключения к утилите. Вы можете посмотреть IP-адреса, с которых совершалось данное действие.
Все запросы о входах концентрируются в «/var/log/secure».
Чтобы отфильтровывать информацию в терминале по запросу «Failed password» необходимо добавит grep
Нередко пользователям требуется запустить определенное приложение с графической оболочкой на удаленном компьютере.
Для осуществления поставленной задачи не нужно использовать VNC, достаточно применить команду ssh. Программа запустится со стороны удаленной машины, пользователю транслируется лишь окно, в котором можно увидеть все, что ему необходимо.
Стоит отметить, что все получаемые данные могут шифроваться. Чтобы такая опция заработала, потребуется включить поддержку со стороны удаленного сервера. Далее выполняется команда, позволяющая загрузить графическую программу. Для этого потребуется ввести в командную строку «ssh -XC user@remotehost «eclipse»».
Нередко при использовании нестабильного соединения с сетью возможно возникновение сбоев в работе утилиты. Если соединение случайным образом было разорвано, потребуется принудительное завершение сессии. Для активации поддержки необходимо добавить в файл:
Теперь можно завершить сессию простой командой:
В завершении можно сказать, что утилита ssh имеет существенно больший функционал, чем это кажется с первого взгляда. Пользоваться такой командой можно как при программировании, так и в повседневной работе.
Какие настройки SSH по умолчанию стоит заменить
К сожалению, интернет-среда буквально пропитана мифами и легендами. После появления очередной “утки” все программисты реагируют, а со временем люди уже забывают, что это всего лишь миф и продолжают делать все по предписанным правилами, которые, возможно, и не правила вовсе. И как же разобраться в этой пучине надуманных законов и ложных советов? Лучший помощник в этом вопросе – это практика и мудрость опытных программистов.
К примеру, вам стоит сразу же отредактировать данные по root-пользователю. Никак нельзя его подпускать к серверу SSH – это чревато необратимыми последствиями. Мало того, что хакер может проникнуть к вам на компьютер через аккаунт суперадминистратора, так и вы сами способны нанести вред серверу SSH, ведь у root неограниченные права. Никак нельзя допускать кому-либо выполнять команды sudo удаленно, а по умолчанию суперадмину дозволено входить на сервер SSH. Так что начните с того, что запретите ему доступ.
Другая ненадуманная настройка, которая стоит по умолчанию, и ее нужно отредактировать, – это способ аутентификации. Никак нельзя оставлять старый метод авторизации путем стандартного ввода пароля. Вы для того и используете протокол SSH, чтобы обезопасить себя от прецедентов взлома паролей. В SSH есть и более умные способы аутентификации. Возьмите тот же открытый ключ – такую систему авторизации практически невозможно взломать, так как вы ничего при входе на сервер вводить не будете – аутентификация пройдет посредством сверки публичного ключа на компьютере. Единственный способ взломать такую защиту – это напрямую вломиться в квартиру пользователя, и завладеть его компьютером с публичным ключом.
Также к немифическим настройкам по умолчанию, которые нужно изменить, относятся параметры сеанса авторизации. Порой хакеры обваливают ботов-взломщиков на сервера, которые пытаются взломать парольную аутентификацию. Они пытаются подобрать пароль для входа классическим рандомным способом выборки. И у них получится, если дать им достаточно время и попыток. Но вам под силу остановить намерения злоумышленников – вы можете изменить количество попыток авторизоваться, длительность сеанса и даже общее число одновременных авторизаций, чтобы боты не пытались взломать сервер сразу через множество клиентов. В этом вопросе все кажется логичным – нет смысла не менять такие конфигурации по умолчанию, так как бездействие может привести к печальным последствиям.
Но стоит ли менять порты? Точнее стоит ли менять стандартный порт, который прописан в SSH по умолчанию? Как известно, это значение равно – Port 22. И по поводу этой строки у многих программистов возникает масса вопросов. Одни уверенно твердят, что нельзя поддавать себя такой опасности и лучше просто заменить порт. Другие говорят, что и Port 22 – это нормально и ничего страшного произойти не может, если игнорировать стандартный порт в настройках.
Как утверждают бывалые пользователи SSH, нет большой разницы, установлен ли у вас Port 22 в файле конфигураций или любой другой порт. Куда важнее то, как вы защищаете ваш сервер SSH. Если это слабая парольная защита, то вполне вероятно, что наступит момент, когда пароль, пусть и зашифрованный, будет перехвачен взломщиками и они свободно проникнут к вам на сервер. И нестандартный порт в таком случае не сыграет защитной роли – он будет не в силах закрыть пробоины, которые вы сами и оставили.
Кроме того, ходят слухи, догадки и даже утверждения о том, что Port 22 вовсе не стоит заменять на другой порт. А все потому, что Port 22 считается универсальным и его уже используют большинство серверов. Если вы сисадмин, и хотите настроить сервер для массового использования, то применение другого значения вместо Port 22 может навредить процессу взаимодействия с клиентом. Ведь все привыкли, что в командах нужно писать именно Port 22. А в случае замены придется каким-то образом сообщать клиентам об этом, что весьма неудобно.
Еще одна неприятность, которая подстерегает тех, кто решился заменить port 22 на другое значение – это возможные сбои в работе. Все-таки, не зря разработчики протокола SSH выбрали именно Port 22 для стандартных настроек. Видимо, этот порт лучше других подходит для обеспечения взаимодействия сервера и клиента, и если заменить port 22 на другой, можно поплатиться потерей функциональности, вплоть до потери возможности работать с сервером. Но если вы все же не боитесь приведенных предостережений, то разберем следующие вопросы: как изменить port 22 и как создать forwarding (переадресацию) портов.
Не инициализируется жесткий диск: находим причины и устраняем проблему
Conclusion #
You have learned how to install and enable SSH on your Ubuntu 18.04. You can now login to your machine and perform common sysadmin tasks through the command prompt.
By default, SSH listens on port 22. Changing the default SSH port adds an extra layer of security to your server by reducing the risk of automated attacks.
If you are managing multiple systems, you can simplify your workflow by defining all of your connections in the SSH config file .
For more information, about how to configure your SSH server read the Ubuntu’s SSH/OpenSSH/Configuring guide and the official SSH manual page.
If you have any questions, please leave a comment below.
ssh ubuntu
Заключение
Мы рассказали об основных настройках протокола SSH, которые помогут уберечь Ubuntu-сервер от несанкционированного доступа
Особенно важно их использовать при расположении сервера в публичных облаках с публичным IP-адресом. На скриншоте ниже вы видите журнал безопасности системы, на которой мы проводили перечисленные в этой статье настройки
В нем видно, что попытки авторизаций под разными пользователями (root, system и другими) происходят регулярно.
Перечисленных в этой статье настроек достаточно для обеспечения базовой безопасности сервера и предотвращения его вовлечения в бот-сети.