Теперь посмотрим, что из себя представляет протокол SSH
⚜️ SSH или Secure Shell (безопасная оболочка) — это один из сетевых протоколов безопасного обмена данными, как вы уже могли понять. С его помощью можно подключаться к удаленному серверу по зашифрованному каналу.
В 1995 году была разработана первая версия протокола. В то время подключение было возможно только по Telnet или FTP — протоколам, которые не обеспечивали безопасное соединение. Несмотря на это, протокол так и не получил полное доверие пользователей из-за наличия технических уязвимостей. Во второй версии протокола SSH были учтены все ошибки предшественника. В 2006 году её признали стандартом.
В первую очередь протокол SSH предназначен для безопасного соединения. Помимо этого он позволяет:
♾ обмениваться данными (файлами, базами данных, таблицами),
♾ запускать программы в удаленном режиме,
♾ делать переадресацию портов,
♾ передавать зашифрованный трафик между портами.
⚜️ Как работает протокол
Установить безопасное SSH-соединение возможно только в том случае, если в процессе участвуют две системы — клиент и сервер.
SSH-клиент — это локальное устройство, с которого пользователь осуществляет удаленное управление. SSH-сервер — это удаленная машина, которой управляют. Управление машиной происходит с помощью различных команд. Их передает командный интерпретатор (shell).
Важно понимать, что к серверу можно подключиться только, если на нём установлено специальное ПО — daemon. Без него пользователь не получит доступ к серверу, а также не сможет использовать защищенные SSH-порты при обмене данными. Это условие касается и устройства пользователя — на нём должна быть запущена специальная программа-клиент. Например, на операционных системах по типу Linux по-умолчанию установлена программа OpenSSH. А пользователи ОС Windows чаще всего используют программную утилиту Putty. Такое безопасное взаимодействие клиента и сервера называется SSH-сессией.
➡️ Итак, мы поняли, какие нужны компоненты, чтобы запустить сессию. Теперь разберемся, из каких этапов состоит SSH-подключение.
1 этап: Соединение по TCP.
TCP — один из базовых протоколов передачи данных, без которого невозможно установить ни одно безопасное соединение. Благодаря его работе возможно подключение пользователя к серверу не только на техническом, но и на сетевом уровне. При подключении по TCP клиент соединяется с защищенным TCP-портом. Как правило, это порт 22.
2 этап: Настройка защищенного канала.
На этом этапе сервер и клиент договариваются о том, по каким правилам будут взаимодействовать: проверяют совместимость, обмениваются идентификационными данными и выбирают алгоритмы работы. Затем они договариваются об основном сеансовом ключе, который будут использовать для всех операций конкретной сессии. После окончания сессии этот ключ уничтожается.
3 этап: Аутентификация.
После того как всё настроено для безопасного удаленного управления, сервер проверяет ключ пользователя. У него есть список, в котором указано, какие ключи можно допускать к соединению, а какие нет. Клиент посылает свой ключ, и сервер проверяет его достоверность. Если ключ совпадает с одним из ключей из списка — аутентификация проходит успешно. Таким образом пользователь получает по SSH доступ к серверу. После этого он может приступить к безопасному управлению.
Заметки тестировщика
⚜️ SSH или Secure Shell (безопасная оболочка) — это один из сетевых протоколов безопасного обмена данными, как вы уже могли понять. С его помощью можно подключаться к удаленному серверу по зашифрованному каналу.
В 1995 году была разработана первая версия протокола. В то время подключение было возможно только по Telnet или FTP — протоколам, которые не обеспечивали безопасное соединение. Несмотря на это, протокол так и не получил полное доверие пользователей из-за наличия технических уязвимостей. Во второй версии протокола SSH были учтены все ошибки предшественника. В 2006 году её признали стандартом.
В первую очередь протокол SSH предназначен для безопасного соединения. Помимо этого он позволяет:
♾ обмениваться данными (файлами, базами данных, таблицами),
♾ запускать программы в удаленном режиме,
♾ делать переадресацию портов,
♾ передавать зашифрованный трафик между портами.
⚜️ Как работает протокол
Установить безопасное SSH-соединение возможно только в том случае, если в процессе участвуют две системы — клиент и сервер.
SSH-клиент — это локальное устройство, с которого пользователь осуществляет удаленное управление. SSH-сервер — это удаленная машина, которой управляют. Управление машиной происходит с помощью различных команд. Их передает командный интерпретатор (shell).
Важно понимать, что к серверу можно подключиться только, если на нём установлено специальное ПО — daemon. Без него пользователь не получит доступ к серверу, а также не сможет использовать защищенные SSH-порты при обмене данными. Это условие касается и устройства пользователя — на нём должна быть запущена специальная программа-клиент. Например, на операционных системах по типу Linux по-умолчанию установлена программа OpenSSH. А пользователи ОС Windows чаще всего используют программную утилиту Putty. Такое безопасное взаимодействие клиента и сервера называется SSH-сессией.
➡️ Итак, мы поняли, какие нужны компоненты, чтобы запустить сессию. Теперь разберемся, из каких этапов состоит SSH-подключение.
1 этап: Соединение по TCP.
TCP — один из базовых протоколов передачи данных, без которого невозможно установить ни одно безопасное соединение. Благодаря его работе возможно подключение пользователя к серверу не только на техническом, но и на сетевом уровне. При подключении по TCP клиент соединяется с защищенным TCP-портом. Как правило, это порт 22.
2 этап: Настройка защищенного канала.
На этом этапе сервер и клиент договариваются о том, по каким правилам будут взаимодействовать: проверяют совместимость, обмениваются идентификационными данными и выбирают алгоритмы работы. Затем они договариваются об основном сеансовом ключе, который будут использовать для всех операций конкретной сессии. После окончания сессии этот ключ уничтожается.
3 этап: Аутентификация.
После того как всё настроено для безопасного удаленного управления, сервер проверяет ключ пользователя. У него есть список, в котором указано, какие ключи можно допускать к соединению, а какие нет. Клиент посылает свой ключ, и сервер проверяет его достоверность. Если ключ совпадает с одним из ключей из списка — аутентификация проходит успешно. Таким образом пользователь получает по SSH доступ к серверу. После этого он может приступить к безопасному управлению.
Заметки тестировщика