Как подключиться к удалённому серверу по SSH?

Secure Shell (SSH) - это протокол для безопасного доступа к удалённым системам и управления ими. Он шифрует обмен данными между клиентом и сервером, защищая данные от несанкционированного доступа и повышая безопасность системы.

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

В этом гайде показано, как с помощью команды ssh подключаться к удалённым серверам по SSH в Windows, Linux и macOS.

Как работает SSH? (Как подключиться к серверу по SSH)

SSH работает, устанавливая защищённое соединение между клиентом и SSH-сервером (sshd).

В примерах выше команда ssh выступала в роли клиента, а на удалённой системе работал SSH-сервер (sshd).

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

Запуск SSH-сервера в Ubuntu

Если SSH-сервер не работает, его можно запустить следующей командой:

$ sudo systemctl start ssh

Когда сервер запущен, вы можете удалённо войти по SSH.

$ sudo systemctl status ssh

Как использовать SSH в Windows?

Если вы используете Windows 10 или более новую версию, SSH уже встроен в систему, поэтому настроить его просто.

Включение SSH в Windows 10

  • Откройте Settings (Параметры) и перейдите в Apps > Optional Features (Приложения > Дополнительные компоненты).
  • Проверьте, установлен ли OpenSSH Client. Если нет, нажмите Add a feature (Добавить компонент), найдите OpenSSH Client и установите его.

Подключение к удалённому серверу

После включения SSH вы можете подключиться к удалённой системе с помощью PowerShell или командной строки:

ssh username@server_ip

Замените username на своё имя пользователя, а server_ip на IP-адрес удалённого сервера.

Использование PuTTY в более старых версиях Windows

Если вы используете Windows 8 или более раннюю версию, в которой SSH по умолчанию нет, можно воспользоваться PuTTY, бесплатным SSH-клиентом с графическим интерфейсом:

 1. Скачайте и установите PuTTY с официальной страницы PuTTY.

 2. Откройте программу и введите IP-адрес сервера.

 3. Укажите порт 22 (стандартный порт SSH).

PuTTY также является отличным вариантом, если вы предпочитаете графический интерфейс инструментам командной строки.

Как использовать SSH в Linux?

В большинстве дистрибутивов Linux SSH установлен заранее. Чтобы проверить, доступен ли SSH в вашей системе, откройте терминал и выполните следующую команду:

$ ssh

Установка SSH в Linux

Если SSH не установлен, его можно добавить с помощью менеджера пакетов. Для дистрибутивов на базе Debian, таких как Ubuntu, используйте:

$ sudo apt-get install openssh-client

Подключение к удалённому серверу

После установки SSH вы можете установить защищённое соединение с удалённым сервером, выполнив:

$ ssh username@server_ip

В приведённой команде нужно заменить username на своё имя пользователя, а server_ip на IP-адрес удалённого сервера.

Как использовать SSH на Mac?

Чтобы установить SSH-соединение в macOS, выполните следующие шаги:

Нажмите значок Terminal в Dock, чтобы запустить его.

Установите SSH-соединение: используйте команду SSH в следующем формате:

ssh username@hostname

Например, если имя пользователя test, а устройство Centos.local, команда будет такой:

ssh [email protected]

Подтвердите соединение: если вы подключаетесь впервые, введите Yes, когда появится запрос на подтверждение соединения.

Введите пароль: введите пароль по запросу, чтобы аутентифицировать сеанс.

Завершите сеанс SSH: чтобы завершить сеанс, нажмите CTRL+D или введите:

exit

Закрытие сеанса предотвращает случайную отправку команд и повышает безопасность.

Распространённые команды и возможности SSH

После установки SSH-соединения с удалённым сервером вы можете выполнять различные задачи, такие как туннелирование, передача файлов и выполнение удалённых команд.

1. Безопасная переадресация портов через SSH

SSH-туннелирование позволяет безопасно маршрутизировать трафик между локальной и удалённой системами. Чтобы настроить локальную переадресацию портов, используйте:

ssh -L 8080:localhost:3306 [email protected]

В этом примере порт 8080 на вашем локальном компьютере перенаправляет трафик на порт 3306 удалённого сервера по адресу 192.168.1.110.

2. Безопасная передача файлов и управление ими

SSH также поддерживает зашифрованную передачу файлов с помощью SCP и SFTP.

  • Передача файла с локальной системы на удалённую с помощью SCP:
scp report.pdf [email protected]:/home/user/documents/

Эта команда безопасно копирует report.pdf с локальной системы в каталог /home/user/documents/ на удалённом сервере.

  • Использование SFTP для управления удалёнными файлами:
sftp [email protected]

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

3. Упрощение удалённого доступа по SSH с помощью конфигурационного файла

Чтобы упростить подключения, можно настроить конфигурационный файл SSH (~/.ssh/config) для хранения часто используемых параметров подключения.

Пример конфигурации:

Host devserver  

    HostName 192.168.1.110  
    User user  
    Port 2222  

Теперь вместо ввода полной команды можно подключиться так:

$ ssh devserver

4. Выполнение команд на удалённом сервере

Чтобы выполнить одну команду удалённо без интерактивного входа, используйте:

$ ssh [email protected] "df -h"

Эта команда получает информацию об использовании диска (df -h) с удалённого сервера.

Как входить по SSH с помощью ключей?

Хотя аутентификация по паролю позволяет получить доступ к удалённым системам, использование SSH-ключей является более эффективным и безопасным методом.

Как работает аутентификация по ключам?

Аутентификация по SSH-ключам использует пару криптографических ключей:

  • Приватный ключ: хранится в безопасном месте на устройстве клиента, и им никогда не следует делиться.
  • Публичный ключ: его можно свободно передавать или размещать на любом сервере, к которому вы хотите получить доступ.

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

Генерация SSH-ключей

Чтобы настроить аутентификацию по SSH-ключам, сгенерируйте пару ключей на локальном компьютере, выполнив:

$ ssh-keygen -t rsa

Во время настройки вам могут предложить задать парольную фразу для файлов ключей, но это необязательно. Нажмите Enter, чтобы принять настройки по умолчанию. Ключи будут сохранены в каталоге ~/.ssh/ со следующими именами файлов:

Public key: ~/.ssh/id_rsa.pub
Private key: ~/.ssh/id_rsa

Проверка файлов SSH-ключей

Перейдите в каталог .ssh:

cd ~/.ssh

Проверьте права доступа и содержимое сгенерированных ключей с помощью команды:

ls -l

Эта команда показывает сведения о файлах, что позволяет убедиться, что они созданы правильно.

Как отключить аутентификацию по паролю для SSH?

После настройки аутентификации по SSH-ключам вы можете дополнительно повысить безопасность, отключив вход по паролю. Так доступ к серверу будут иметь только пользователи с правильным приватным ключом.

Важное примечание: прежде чем продолжить, убедитесь, что ваш публичный ключ правильно установлен на сервере. Иначе вы можете потерять доступ.

Изменение конфигурации SSH для отключения входа по паролю

Откройте конфигурационный файл SSH от имени пользователя с правами root или sudo:

$ sudo nano /etc/ssh/sshd_config

1. Найдите строку PasswordAuthentication, удалите символ # в её начале (если он есть) и измените значение на "no":

PasswordAuthentication no

2. Убедитесь, что аутентификация по публичному ключу включена, а аутентификация типа «запрос-ответ» (challenge-response) отключена. В файле должны быть следующие параметры:

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Сохраните файл и закройте его.

Чтобы применить новые настройки, перезапустите службу SSH командой:

$ sudo systemctl reload ssh

Таким образом аутентификация по паролю будет отключена, и доступ будет возможен только через аутентификацию по SSH-ключам.

Лучшие практики для повышения безопасности SSH-соединений 

Чтобы защитить свои SSH-соединения, следуйте этим лучшим практикам:

1. Используйте SSH-ключи или надёжные пароли: SSH-ключи обеспечивают лучшую защиту, чем пароли. Если вы используете пароль, позаботьтесь, чтобы он был длинным, уникальным и сложным, с сочетанием букв, цифр и символов.

2. Отключите вход от имени root: предотвратите несанкционированный доступ, отключив прямой вход от имени root в конфигурационном файле SSH (/etc/ssh/sshd_config) с помощью параметра:

PermitRootLogin no

3. Измените стандартный порт SSH: замените стандартный порт (22) на собственный, чтобы снизить риск автоматизированных атак. Обновите строку "Port 22" в sshd_config и перезапустите SSH, чтобы изменения вступили в силу.

4. Используйте инструменты безопасности: установите инструменты вроде Fail2Ban, чтобы обнаруживать и блокировать повторные неудачные попытки входа и предотвращать атаки методом перебора (brute-force):

$ sudo apt-get install fail2ban

Внедрение этих мер усилит безопасность SSH и защитит от несанкционированного доступа.

Заключение

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

Разверните свой KVM VPS мгновенно в 20 локациях по всему миру с BlueVPS! Пользуйтесь бесперебойным удалённым доступом, полным контролем и на 100 % выделенными ресурсами с виртуализацией KVM. Выбирайте VPS на базе Linux или Windows со всеми основными панелями управления и поддержкой экспертов 24/7. Начните сейчас, чтобы получить мощный и надёжный хостинг!

 

Blog