SSH (Secure Shell) — сетевой протокол, позволяющий безопасно подключаться к другим компьютерам и серверам по сети. Данный протокол применяется для подключения к удалённой системе, выполнения на ней команд, передачи файлов и туннелирования других соединений, например, через проброс портов.
SSH обеспечивает защищённое соединение, при котором логины, пароли и передаваемые данные шифруются и не могут быть перехвачены. По умолчанию для SSH-соединения используется порт 22. При этом получение доступа к удалённой системе возможен как по паролю, так и по SSH-ключам. Естественно, второй вариант считается более безопасным.
Как подключиться к Debian по SSH из Windows
Говоря о пользовательских операционных системах, встроенный SSH-клиент появился в Windows лишь в версии 10. В Windows 7 и предыдущих версиях его по умолчанию не было.

Чтобы убедиться в том, что клиентское приложение для SSH присутствует в системе, запустите командную строку (Win R ⭢ cmd) и выполните команду, которая выводит его версию:
ssh -V

Базовый синтаксис команды для подключения по SSH выглядит как:
ssh your-user@192.168.1.2
В данном случае:
your-user— имя пользователя, при помощи которого производится подключение к удалённой системе;192.168.1.2— IP-адрес удалённой системы.
При первом подключении к удалённому хосту SSH-клиент получает его публичный ключ (host key), но не находит соответствующую запись в локальном файле known_hosts. Клиент вычисляет отпечаток (fingerprint) ключа и предупреждает, что не может подтвердить подлинность сервера.
Если вы действительно впервые подключаетесь к своему VPS, введите yes, чтобы добавить ключ сервера в файл known_hosts. При последующих подключениях клиент будет сверять этот ключ, защищая соединение от MITM-атак (man-in-the-middle). Для аутентификации в удалённой сессии введите пароль подключаемого пользователя.

Вместо IP-адреса можно использовать доменное имя сервера, например:
ssh your-user@vash-domain.ru
Здесь, вместо vash-domain.ru укажите имя домена, привязанное к вашему VPS.

Как подключиться к Debian по SSH через PuTTY
Помимо командной строки в Windows применяются различные сторонние SSH-клиенты, наиболее широкой популярностью среди которых пользуется PuTTY. PuTTY — лёгкий и старейший SSH-клиент, созданный изначально для Windows, когда в системе ещё не было встроенных средств для работы с SSH. PuTTY позволяет устанавливать защищённые соединения с серверами по протоколам SSH, Telnet, Rlogin, используя не только сетевые подключения, но и последовательные порты, что делает его удобным инструментом для администраторов и инженеров. Интерфейс PuTTY простой и содержит всего несколько вкладок с настройками подключения.
Чтобы установить PuTTY, перейдите на страницу его официальных релизов и загрузите установочный файл, соответствующей вашей конфигурации Windows.

По окончании загрузки запустите мастер установки, и после завершения процесса откройте проинсталлированное приложение.
Чтобы подключиться к удалённому серверу по SSH, в стартовом окне программы укажите IP-адрес сервера в строке Host Name (or IP address), а в разделе Connection type выберите SSH и при необходимости измените номер порта в поле Port.

При первом подключении к серверу PuTTY выдаёт сообщение безопасности. Подобно тому, как это происходит при подключении через командную строку, PuTTY не может подтвердить подлинность сервера, поскольку не имеет сохранённого отпечатка (fingerprint) его публичного ключа (host key). Но если вы уверены, что это именно тот сервер, к которому вы планируете подключиться, нажмите Accept. В таком случае PuTTY сохранит этот ключ, и при последующих подключениях к этому IP-адресу не будет спрашивать его снова. Если нажать Connect Once, подключение произойдёт один раз без сохранения ключа, и при следующем подключении опять появится предупреждение. Если ключ когда-нибудь изменится, например, после переустановки системы или подмены сервера, PuTTY снова покажет предупреждение, но уже другого типа — с сообщением о несоответствии сохранённого ключа.

Для аутентификации в удалённой системе введите пароль учётной записи, под именем которой производится подключение.

Как подключиться к Debian по SSH из macOS
Для подключения по SSH на macOS используется приложение Терминал. Для доступа к нему откройте меню Утилиты.

Выберите Терминал.

Чтобы подключиться к удалённой Debian-машине, в терминале введите команду:
ssh your-user@X.X.X.X
В данной команде вместо your-user укажите имя вашей учётной записи, при помощи которой производится подключение, и замените X.X.X.X на IP-адрес виртуального сервера. Во время первого подключения к серверу система предложит подтвердить публичный ключ хоста (host key), чтобы сохранить отпечаток (fingerprint) в файл known_hosts. Для добавления ключа в список доверенных введите yes. При последующих подключениях SSH-клиент будет сравнивать сохранённый ключ с ключом, предоставляемым сервером. Это позволит защитить соединение от атак типа MITM (man-in-the-middle).

Чтобы подключиться к SSH-сессии, введите пароль пользователя, указанного в команде.

Если к виртуальному серверу привязано доменное имя, то его можно использовать в команде вместо IP-адреса:
ssh your-user@vash-domain.ru

Подключение с использованием SSH-ключей
Вместо пароля при подключении к удалённой системе рекомендуется использовать аутентификацию по SSH-ключам. Данный метод аутентификации является более надёжным и удобным, поскольку в этом случае безопасность строится не на знании короткой строки, а на криптографической паре ключей — приватном и публичном. Приватный ключ хранится на клиентской машине и никогда не передаётся по сети. Сервер, в свою очередь, хранит лишь копию публичного ключа и проверяет подпись, созданную приватным. Если злоумышленник перехватит соединение, он не сможет вычислить приватный ключ, в отличие от пароля, который можно подобрать или украсть. Кроме того, такие ключи невозможно перебрать брутфорсом из-за длины и сложности. SSH-ключи удобно использовать в автоматизации, ведь соединения устанавливаются без ввода пароля, при этом оставаясь безопасными.
Процесс настройки аутентификации по SSH-ключам описан в статье нашего справочника, посвящённой первоначальной настройке образа Debian.
Дополнительные параметры подключения по SSH
Команда ssh может также применяться со множеством полезных ключей. Одним из самых популярных является ключ -p, который позволяет указывать нестандартный порт. Например, так выглядит команда, если SSH на сервер слушает не 22-й порт, а порт 2222:
ssh -p 2222 your-user@vash-domain.ru
Ключ -i задаёт путь к приватному ключу. Его необходимо применять, если приватный ключ расположен не в дефолтном каталоге. Например, если на Windows приватный ключ лежит в папке C:\keys\, то команда будет выглядеть следующим образом:
ssh -i C:\keys\id_rsa your-user@vash-domain.ru
Для macOS, приватный ключ которого находится в директории ~/keys/, команда подключения по SSH имеет вид:
ssh -i ~/keys/id_rsa your-user@vash-domain.ru
Ключи -L и -R отвечают за создание туннелей — локального и удалённого. SSH-туннель — это зашифрованный канал, который создаётся между локальным компьютером и удалённым сервером с помощью протокола SSH, через который можно безопасно передавать сетевой трафик. Локальный туннель принимает соединения на локальной машине и перенаправляет их на заданный адрес внутри сети сервера. Например, команда ssh -L 8080:localhost:80 your-user@vash-domain.ru позволяет открыть на локальном компьютере http://localhost:8080 и попасть на веб-сервер, работающий на порту 80 сервера. Удалённый туннель делает противоположное — открывает порт на сервере и перенаправляет его трафик на клиента. Это может быть удобно для доступа к локальному сервису через внешний сервер.
Всё, что проходит через туннель, шифруется алгоритмами SSH. Поэтому провайдер или администратор сети не могут видеть, какие данные передаются между сервером и клиентом. При этом SSH-сессия остаётся той же, ведь туннель просто создаёт дополнительные потоки поверх неё. Благодаря этому SSH-туннели часто используют для безопасного доступа к базам данных, веб-интерфейсам, внутренним API или для временного подключения удалённых рабочих мест.