Использование SSHFS для монтирования удаленной файловой системы

Чаще всего используются следующие сценарии проброса SSH:

Windows

СВЯЗАННЫЕ: 5 интересных вещей, которые вы можете сделать с SSH-сервером

Windows по-прежнему не предлагает встроенной команды SSH. Microsoft подняла шум по поводу интеграции официального SSH-клиента в PowerShell еще в 2015 году, но с тех пор мы мало что слышали об этом. Таким образом, наиболее популярным и широко рекомендуемым решением для подключения к SSH-серверам является стороннее приложение с открытым исходным кодом под названием PuTTY.

Обновление: в Windows 10 теперь есть официальная команда SSH, которую вы можете установить. Это часть Windows 10, но является «необязательной функцией».

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

Введите имя хоста или IP-адрес SSH-сервера в поле «Имя хоста (или IP-адрес)». Убедитесь, что номер порта в поле «Порт» совпадает с номером порта, который требуется серверу SSH. Серверы SSH по умолчанию используют порт 22, но зачастую серверы настроены на использование других номеров портов. Нажмите «Открыть» для подключения.

Вы увидите предупреждение системы безопасности при первой попытке подключения к серверу. Это означает, что вы ранее не подключались к этому серверу. Это ожидаемо, поэтому нажмите «ОК», чтобы продолжить.

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

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

С PuTTY вы можете сделать гораздо больше. Например, если вам нужно использовать файл закрытого ключа для аутентификации на SSH-сервере, вы найдете эту опцию в Connection> SSH> Auth в окне конфигурации PuTTY, которое появляется при запуске приложения. Обратитесь к руководству PuTTY для получения дополнительной информации.

Базовый синтаксис

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

  • ssh remote_host

remote_host в этом примере является IP-адресом или доменным именем узла, к которому вы пытаетесь подключиться.

Эта команда предполагает, что ваше имя пользователя на удаленной системе совпадает с именем пользователя в локальной системе.

Если ваше локальное имя пользователя отличается от имени пользователя в удаленной системе, вы можете задать его, используя следующий синтаксис:

  • ssh remote_username@remote_host

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

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

  • exit

RDP доступ через SSH туннель (local TCP forwarding)

В этом режиме вы создаете на своем компьютере локальный TCP порт, подключения к которому перенаправляются через SSH туннель на указанный порт удаленного сервера. В этом примере мы создадим локальный порт 8888, при подключении к которому выполняется перенаправление с этого порта на RDP порт 3389 удаленного компьютера. Общая схема подключения выглядит так:

Читайте также:  Docker. Управление образами и контейнерами

Для создания SSH туннеля с помощью встроенного SSH клиента (встроен в Windows 10 1809 и Windows Server 2019), выполните команду:

ssh -L 8888::3389 [email protected]

Чтобы SSH туннель работал в фоновом режиме, нужно добавит параметр –f.

Теперь, чтобы подключится к удаленному компьютеру через SSH туннель, вам нужно подключится RDP-клиентом на локальный порт 8888 своего компьютера:

127.0.0.1:8888

Авторизуйтесь на удаленном компьютере и можете спокойно работать в RDP-сессии, при этом вы помните, что порт 3389 все еще закрыт в файерволе. С помощью TCPView вы можете убедиться, что RDP подключение установлено локально (RDP подключение инициировано запущенным локально SSH сервером).

Обратите внимание, что если вы перенаправляете таким образом незашифрованный трафик приложения, то по сети он передается в зашифрованном виде. Трафик в лбом случае шифруется на одном конце SSH соединения и расшифровывается на другом.

В таком режиме другие компьютеры в вашей локальной сети тоже смогут подключиться к удаленному RDP серверу, даже если у них полностью заблокирован прямой доступ к удаленному серверу (как по SSH, так и по RDP). Для этого, они должны подключиться RDP клиентом к порту 8888 на вашем компьютере, на котором создан SSH туннель:

/v :8888

Использование SSH-ключей

Для подключения к аккаунту по SSH-ключам предварительно генерируем персональную пару ключей — открытый и закрытый. Первый ключ копируем на удаленный сервер, а второй — никому не передаем (только через защищенные каналы).

Вот так ключи можно создать в ОС GNU, Linux и macOS.

Переходим в директорию .ssh и генерируем ключи командой:

ssh-keygen -t rsa -b 4096

где -t — тип ключа, а -b — длина ключа.

Далее задаем имя ключа или оставляем вариант по умолчанию (~/.ssh/id_rsa). Вводим дополнительный пароль – пассфразу – и подтверждаем ее.

Далее копируем SSH-ключи на аккаунт с помощью команды:

ssh-copy-id [email protected]

где login – логин аккаунта, server – IP-адрес сервера.

Готово! Попробуйте подключиться по SSH к аккаунту хостинга и при авторизации укажите пассфразу.

Настройка сервера

Первое о чем нужно позаботиться это смена стандартного порта для подключения, иначе уже через пару минут к вам выстроится очередь из ботов. Изменить эту и любую другую настройку можно в файле /etc/ssh/ssh_config, для порта есть строчка Port, если нет, то нужно ее дописать

Port любой_порт_отличный_от_стандартного

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

AllowUsers user1 user2 user3

Еще может быть полезным запретить подключение с пустым паролем

PermitEmptyPasswords no

Не забываем перезапустить сервер

/etc/init.d/ssh restart

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

Подключение по SSH через PuTTY

В тех случаях, когда версия Windows 10 не поддерживает OpenSSH (или используется Windows 7) к SSH можно подключаться с помощью программы PyTTY. Скачать установщик данной программы можно на официальном сайте

После установки программы PyTTY ее можно будет запустить с помощью поиска в меню «Пуск»

Сразу после запуска программы PuTTY появляется окно с настройками подключения. Основными параметры здесь находятся на вкладке «Session», здесь нужно ввести:

  • Имя компьютера или IP адрес;
  • Порт для подключения (по умолчанию, 22);
  • Способ подключения (SSH);

После ввода этих данных можно запускать подключение с помощью кнопки «Open».

Если для подключения к SSH используются ключи, то путь к приватному ключу нужно указать в разделе «Connection – SSH – Auth».

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

Читайте также:  5 способов установки программ в Ubuntu. Пошаговые инструкции

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

После ввода этих данных вы будете подключены к удаленному серверу по SSH.

Посмотрите также:

  • Как удалить папку в Linux через терминал (консоль)
  • Как перейти в папку в терминале Linux
  • Как открыть файл в терминале Linux
  • Как создать файл в Linux через терминал
  • Как скопировать файл в Linux через терминал

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

Для подключения по SSH нам необходимо знать такие данные:

  • ip адрес сервера, к которому мы собираемся подключится;
  • порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
  • имя и пароль пользователя на удаленном сервере.

Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.

1. Подключение через SSH в Linux

В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:

$ ssh имя_пользователя @ айпи_адрес

Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:

$ ssh имя_пользователя @ айпи_адрес -p порт

Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:

Или, с нестандартным портом:

ssh [email protected] -p 2223

Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:

Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:

Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:

Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:

Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:

sudo ufw allow 22/tcp

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

А в CentOS/Fedora:

firewall-cmd —permanent —zone=public —add-port=22/tcp

Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.

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

Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.

2. Подключение через SSH в Windows

Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:

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

Затем выберите Управление дополнительными компонентами:

Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:

Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.

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

После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:

Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:

ssh имя_пользователя @ айпи_адрес -p порт

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

Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу :

Читайте также:  Как изменить размер страницы сайта на экране

Утилита предложит добавить устройство в список известных:

Затем предложит ввести пароль:

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

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

Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.

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

Генерация ключа в ОС Windows

Для генерации SSH-ключей в Windows используется PuTTY Key Generator.

После установки запустите программу, в нижней части экрана в качестве Type of key to generate укажите RSA и поставьте значение поля Number of bits in generated key равным 2048. Нажмите кнопку Generate и свободно перемещайте курсор по экрану для выработки случайных данных.

Генерация ключа в ОС Windows

Примечание: вы можете использовать ключевую фразу, но это не является обязательным, но при ее использовании обеспечивает большую надежность.

Сохраните приватный и открытый ключи в удобное место.

Обратные SSH-туннели

Ну, вот и настало время для моей любимой разновидности SSH-туннелей. Разумеется, получать доступ к какому-либо сервису через SSH — это здорово, «гонять» веб-трафик по зашифрованным SSH-туннелям — тоже, но самое приятное удивление можно испытать от обратных туннелей. Как я уже говорил ранее, ими приходится пользоваться в ситуации, когда имеется машина без SSH-сервера, а вы испытываете необходимость получить к ней доступ в дальнейшем (через несколько минут, часов или дней), но при этом не хотите или не можете воспользоваться VPN. Вам следует соединиться с SSH-сервером с этой машины, а затем установить обратный SSH-туннель, подключившись к этому соединению. Для чего я это применяю? Время от времени — для того, чтобы поработать с удаленным сервером или просто для того, чтобы помочь друзьям и родственникам по VNC через SSH. В последнем случае они запускают Putty с сохраненными настройками сеанса и подключаются к моему SSH-серверу от имени пользователя, не имеющего никаких прав. После создания туннеля я могу зайти по VNC на их машины. И все, им не нужно настраивать файервол или разбираться с LogMeIn или другими подобными сайтами.

Итак, для создания обратного SSH-туннеля необходимо выполнить следущие действия:

  1. На клиентской машине:

    ssh -R remoteport:localhost:22 [email protected]

  2. На стороне сервера:

    ssh -p 2048 localhost

И вот вам обратный туннель! Вуаля!

Для любителей наглядности пользователи daddoo и nerdboy4200 с канала #linuxjournal подготовили схему последовательностей сообщений с помощью пакета mscgen (). Да, это пакет с открытым исходным кодом и он обладает потрясающими возможностями. Я попробовал свои силы и создал схему для этой заметки, но то, что за короткое время сделали daddoo и nerdboy, заставило меня устыдиться [своей неумелости — прим. пер.].

Вместо выводов

SSHFS хорошее решение, если Вам нужно быстро и относительно не сложно реализовать постоянный доступ к файлам на удаленном сервере. Это удобное решение для веб-разработчиков, для совместной работы с файлами или если вы работаете удаленно. В зависимости от объема данных, которые будут храниться на сервере, под такую задачу можно использовать виртуальный сервер или арендовать выделенный сервер.

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

Дата:

Твитнуть

Рекомендуемые статьи по теме:
  • HTTP/2 плюсы и минусы
  • Как обновить FreeBSD с 12 до 13
  • Как настроить ModSecurity с Apache в Debian / Ubuntu
  • Пошаговая установка LEMP в Ubuntu
  • VPS (VDS) что это?

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами: Please enable JavaScript to view the comments powered by Disqus. comments powered by Disqus