Как подключиться к Debian по SSH из Windows и macOS

SSH (Secure Shell) — сетевой протокол, позволяющий безопасно подключаться к другим компьютерам и серверам по сети. Данный протокол применяется для подключения к удалённой системе, выполнения на ней команд, передачи файлов и туннелирования других соединений, например, через проброс портов.

SSH обеспечивает защищённое соединение, при котором логины, пароли и передаваемые данные шифруются и не могут быть перехвачены. По умолчанию для SSH-соединения используется порт 22. При этом получение доступа к удалённой системе возможен как по паролю, так и по SSH-ключам. Естественно, второй вариант считается более безопасным.

Как подключиться к Debian по SSH из Windows

Говоря о пользовательских операционных системах, встроенный SSH-клиент появился в Windows лишь в версии 10. В Windows 7 и предыдущих версиях его по умолчанию не было.

Вывод в командной строке при отсутствии SSH-клиента в системе

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

ssh -V

Вывод версии SSH-клиента - Как подключиться к Debian по SSH

Базовый синтаксис команды для подключения по 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). Для аутентификации в удалённой сессии введите пароль подключаемого пользователя.

Введите yes для добавления ключа сервера в файл known_hosts

Вместо IP-адреса можно использовать доменное имя сервера, например:

ssh your-user@vash-domain.ru

Здесь, вместо vash-domain.ru укажите имя домена, привязанное к вашему VPS.

Подключение по SSH с использованием доменного имени

Как подключиться к Debian по SSH через PuTTY

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

Чтобы установить PuTTY, перейдите на страницу его официальных релизов и загрузите установочный файл, соответствующей вашей конфигурации Windows.

Страница релизов PuTTY

По окончании загрузки запустите мастер установки, и после завершения процесса откройте проинсталлированное приложение.

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

Интерфейс PuTTY - Как подключиться к Debian по SSH

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

Подтверждение подлинности сервера при первом подключении через PuTTY

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

Начало SSH-сессии в PuTTY - Как подключиться к Debian по SSH

Как подключиться к Debian по SSH из macOS

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

Меню Утилиты в macOS

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

Меню Утилиты в 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).

Подтверждение публичного ключа хоста при первом подключении к Debian в macOS

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

Подключение к Debian по SSH из macOS

Если к виртуальному серверу привязано доменное имя, то его можно использовать в команде вместо IP-адреса:

ssh your-user@vash-domain.ru

Подключение к Debian по SSH с использованием доменного имени

Подключение с использованием 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 или для временного подключения удалённых рабочих мест.

Вам также может понравиться