Что такое SSH и как он работает?
Опубликовано: 2021-08-15SSH — это защищенный сетевой протокол для доступа к удаленным компьютерам в сети.
Компьютеры общаются друг с другом через сети. Поэтому исследователи сетей определили набор правил для связи с другими машинами и начали разрабатывать такие протоколы, как Telnet; используя это, один пользователь может получить контроль над другим компьютером.
Но они не безопасны, т. е. любой в середине сети может перехватить и прочитать передаваемые данные. В середине 90-х был представлен более защищенный протокол ssh как надежный преемник протокола telnet.
Если вы разработчик программного обеспечения или системный администратор, работающий в какой-либо отрасли, возможно, вы использовали ssh хотя бы один раз. Если вы этого не сделали, давайте изучим это сейчас, так как это один из основных навыков, которые необходимо знать.
Что такое SSH?
SSH или Secure Shell или Secure Socket Shell — это сетевой протокол, который помогает нам безопасно получать доступ и обмениваться данными с удаленными машинами (в основном удаленными серверами).
Он обеспечивает надежное шифрование и широко используется сетевыми администраторами и разработчиками для управления удаленными системами и приложениями, выполнения команд, обмена файлами и т. д.
Необходимость SSH
SSH был создан в 1995 году для решения проблем безопасности, с которыми сталкиваются незащищенные протоколы удаленного доступа, такие как rlogin, rsh, Telnet.
Теперь давайте поговорим о Telnet, который означает сеть телетайпов , разработанную в 1969 году. Это простой инструмент командной строки, который запускается на вашем компьютере для доступа к удаленному серверу (в любой точке земного шара). И отправьте команды для выполнения на этом сервере, как если бы вы сидели прямо перед удаленным сервером (даже в милях от сервера). Telnet передает и получает сообщения в виде обычного текста по сети.
Команды, которые вы будете выполнять, могут включать запуск программ, создание каталогов, создание/удаление/перенос файлов, запуск/остановку служб и т. д.
Проблема с подключением другой машины в сети заключается в том, что передаваемые данные будут проходить через множество сетей. Между тем, некоторые из них могут быть небезопасными, а передаваемые данные могут быть перехвачены и, возможно, изменены до того, как они достигнут целевой машины.
В первые дни, когда безопасность не была так важна, все коммуникации происходили в виде простого текста. Следовательно, данные, передаваемые через Интернет между клиентом и сервером, могут быть легко перехвачены. И его можно прочитать, так как сообщения не зашифрованы.
Таким образом, незашифрованные протоколы чрезвычайно небезопасны и никогда не используются для передачи конфиденциальных данных, таких как пароли, секреты и т. д. Таким образом, SSH считается безопасной альтернативой устаревшим сетевым протоколам удаленного доступа.
Как это работает?
SSH использует архитектуру клиент-сервер для безопасного обмена данными по сети путем подключения клиента ssh к серверу ssh. По умолчанию ssh-сервер прослушивает стандартный TCP-порт 22 (вы можете изменить это для большей безопасности).
Он использует метод криптографии с открытым ключом для аутентификации между клиентом и сервером. Кроме того, протокол использует надежные алгоритмы симметричного шифрования и хэширования для обмена сообщениями между клиентом и сервером для обеспечения конфиденциальности и целостности данных.
Linux является широко используемой операционной системой для удаленных серверов из-за ее безопасности и надежности . Многие серверы, использующие операционную систему Linux в Интернете, работают годами без сбоев и даже не перезагружаются.

Большинство сеансов SSH (период, в течение которого мы обращаемся к удаленному серверу) будут иметь только следующие две операции:
- Аутентификация
- Выполнение команды
Серверы SSH могут аутентифицировать клиентов, используя различные методы.
И два популярных способа:
- На основе пароля
- на основе ключей
Аутентификация на основе пароля — это метод по умолчанию, используемый для аутентификации установленных клиентов OpenSSH. Это самая простая аутентификация ssh, но не самая безопасная.
Несмотря на то, что пароли отправляются на сервер безопасным образом, современные атаки методом грубой силы могут обойти аутентификацию.
Аутентификация на основе ключей еще больше повышает безопасность системы за счет создания пар ключей SSH, что является надежной и безопасной альтернативой.
После того, как сервер успешно аутентифицирует клиента, между ними устанавливается защищенное соединение.
Доступ к удаленному серверу с помощью SSH
Если вы являетесь пользователем Mac/Linux, вы можете напрямую использовать терминал для ввода и запуска команд ssh, так как OpenSSH уже установлен по умолчанию.
Если вы пользователь Windows, вам необходимо установить один сторонний клиент эмулятора терминала для запуска команд ssh. PuTTY — самый популярный ssh-клиент для операционной системы Windows.
Чтобы подключиться к удаленному серверу с помощью SSH, вам нужно знать как минимум две вещи.
- хост сервера
- имя пользователя
Синтаксис базовой команды ssh:
$ ssh <user-name> @ <host> -p <port-no>
Имя пользователя — это имя пользователя удаленной машины, к которой мы пытаемся подключиться (а не пользователя вашей локальной машины), а хост — это либо IP-адрес, либо доменное имя.
Давайте рассмотрим пример подключения к удаленному серверу с помощью сайта OverTheWire. Это бесплатный веб-сайт, посвященный варгеймам.
Теперь давайте подключимся к вызову бандитов, используя ssh. Это одна из доступных задач на веб-сайте, которая учит, как войти в систему с помощью SSH.
Реквизиты для входа:
имя пользователя и пароль: bandit0
хост и порт: bandit.labs.overthewire.org , 2220
Когда вы вводите следующую команду и нажимаете ввод:
$ ssh [email protected] -p 2220
Он запросит у вас пароль для аутентификации. Теперь введите пароль и нажмите Enter:
Если введенный пароль правильный, вы успешно вошли на удаленный сервер, и ваш терминал будет выглядеть так, как показано на изображении выше.
Теперь вы можете использовать терминал удаленной машины для ввода и выполнения ваших команд и выполнения необходимых операций.
Если вы хотите завершить сеанс ssh, введите команду выхода :
$ exit
Вы получите сообщение « Соединение закрыто» , когда вы успешно выйдете из сеанса ssh.
Вывод
Основной причиной популярности SSH является то, что вся связь между сервером и клиентом зашифрована .
Большинство людей считают, что использование ssh сложно, и получить знания о том, как он работает, нелегко понять, но это проще, чем вы думаете. Теперь у вас есть общее представление о SSH, о том, как он работает, об аспектах безопасности, стоящих за ним, и о том, почему он играет жизненно важную роль в общении.
Затем изучите некоторые ресурсы, чтобы стать системным администратором.