SSH в Windows 10: как активировать сервер и подключиться как клиент

Проблема возникла из-за необходимости поддерживать достаточно много времени процесса соединения с сервером Linux, чтобы каждый раз не соединяться и каждый раз не вводит монотонные строки входа в папку проекта на сервере. Для настройки. Настроить нужно, как серверную часть, так и клиентскую, если к примеру соединение производится через PuTTY или через встроенный терминал в рабочем IDE. У меня была проблема последнего характера.

Шаг 1: Логинемся под пользователем root

ssh root@your_server_ip

И делаем свое черное дело список здесь список здесь.

Потом вы подумали, что это очень легко работать под правами root, нужно усложнить себе работу и ввести новую сущность — бесправного пользователя и обязательно дать ему имя как ваш ник в Одноглазиках (сорри, вы продвинутые тогда берите из VK)! Чтобы когда вы в логах (/var/log/) увидите как хакеры пробуют взломать вашего демона SSH и не догадались о вашем нике из Одноглазиков — это победа!! Вы можете гордиться вашим ником в социальных сетях — его никто не знает. И значит можно пароль поставить как на домашний роутер admin. Я шутил!

По делу: не работайте от root, пожалуйста!

Что собой являет SSH соединение

SSH (Secure shell) — сетевой протокол, предназначенный для получения безопасного удаленного доступа к операционной системе и управления ею.

В Linux системах подключение по защищенному протоколу осуществляется с помощью следующей команды:

ssh [email protected]_host

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

Для того, чтобы прервать соединение и вернуться к локальной сессии, достаточно ввести в консоли exit.

В случае использования операционной системы Windows, можно воспользоваться SSH-клиентом PuTTy, работа с которым описана в нашей статье.

Проброс портов для SSH

Для проброса портов вам нужно знать IP адрес, который присваивается виртуальной машине. Для этого запустите виртуальную машину и выполните на ней команду «ifconfig». В ответ вы получите информацию о сетевых подключениях, в которой будет указан и IP адрес. В нашем случае был получен IP адрес – «».

Проброс портов для SSH

Обратите внимание, если в вашей системе нет команды «ifconfig», то ее нужно будет установить отдельно. В случае Debian и Ubuntu Linux это можно сделать с помощью команды «apt-get install net-tools».

Читайте также:  Как установить Linux второй операционной системой

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

Проброс портов для SSH

В настройках виртуальной машины нужно открыть раздел «Сеть», открыть дополнительные настройки и перейти к пробросу портов.

После этого откроется окно для проброса портов. Здесь нужно нажать на кнопку «Добавить» и заполнить следующие данные:

Проброс портов для SSH
  • Имя: SSH.
  • Протокол: TCP.
  • Адрес хоста: оставляем пустым или указываем 127.0.0.1.
  • Порт хоста: любой свободный порт на вашей основной системе, например, 2222.
  • Адрес гостя: IP адрес, который был присвоен вашей виртуальной машине. В нашем случае это
  • Порт гостя: порт SSH на виртуальной машине, по умолчанию – 22.

После проброса порта закрываем все окна с помощью кнопки «ОК».

Проброс портов для SSH

После этого можно подключаться к виртуальной машине по SSH. Для этого можно использовать клиент OpenSSH, который доступен в Windows 10. Поскольку порт «2222» на основной системе был проброшен на порт «22» на виртуальной машине, то для подключения по SSH нам нужно выполнить следующую команду:

ssh [email protected] -p 2222

Проброс портов для SSH

Где «user» — это имя пользователя, а «2222» — используемый порт на основной системе.

Аналогичным способом выполняется подключение с помощью PuTTY. В поле «Host Name» указываем «localhost», а в поле «Port» — «2222». Более подробно об OpenSSH и PyTTY в отдельной статье о подключении по SSH.

Проброс портов для SSH

Как видно по скриншоту вверху, данный способ отлично работает, и мы успешно подключились по SSH к виртуальной машине VirtualBox.

Сохраняем открытый ключ в профиле на GitHub

Теперь содержимое файла id_, которое мы скопировали в буфер обмена, нужно сохранить в настройках своего профиля на GitHub.

Сохраняем открытый ключ в профиле на GitHub

Для этого зайдем на GitHub под своей учётной записью (в нашем примере это пользователь andpop), кликнем на треугольнике справа от своей аватарки в верхнем правом углу окна и в открывшемся списке выберем пункт Settings.

Читайте также:  15 Примеров использования в linux команды top

В открывшемся окне нужно выбрать пункт SSH and GPG keys:

Сохраняем открытый ключ в профиле на GitHub

Появится список SSH-ключей, которые мы регистрировали для нашей учётной записи ранее (их может быть несколько), и кнопка New SSH key для ввода нового ключа:

Для регистрации нового ключа нужно:

Сохраняем открытый ключ в профиле на GitHub

1. В поле Title ввести его название. Оно нужно только для информации о том, для какого компьютера вы добавили ключ, больше мы его нигде использовать не будем.

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

Сохраняем открытый ключ в профиле на GitHub

После нажатия кнопки Add SSH key GitHub может запросить ваш пароль для подтверждения регистрации нового ключа:

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

Сохраняем открытый ключ в профиле на GitHub

Отметим, что при первом обращении к GitHub с использованием SSH-ключей в консоли вы получите такое сообщение:

The authenticity of host ‘ ()’ can’t be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no/[fingerprint])?

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

Как подключиться к VPS c macOS и iOS

Для подключения к серверу по SSH с устройств на операционной системе macOS, также как и в предыдущем случае, используем встроенный клиент Terminal.

Как подключиться к VPS c macOS и iOS
Как подключиться к VPS c macOS и iOS
  1. Открываем приложение. Вводим команду с данными сервера «ssh логин@IP-адрес». Нажимаем «Enter».
  2. При первом входе подтверждаем свои действия соответствующей командой «Yes».
  3. Вводим пароль от виртуального сервера.
  4. Подключение к виртуальному серверу по протоколу SSH завершено.
Как подключиться к VPS c macOS и iOS
Как подключиться к VPS c macOS и iOS

С мобильных устройств на iOS процедура подключения к серверу по SSH проходит аналогичным способом. Для этого существует много удобных приложений, таких как бесплатные SSH-клиенты iTerminal и Termius. В приложении нужно выбрать пункт «SSH», указать IP-адрес («Host name / IP address»), логин («User name»), пароль («Password») и нажать «Соеденить» («Connect»).

Как подключиться к VPS c macOS и iOS

Управление сервером OpenSSH

Чтобы использовать сервер, первое, что нам нужно сделать, это запустить его. Это можно сделать разными способами. Например, есть приложения с графическим интерфейсом пользователя, которые позволяют нам это делать, но мы рекомендуем использовать команды PowerShell для управления состоянием этого сервера:

  • Get-Service sshd — проверьте состояние сервера sshd.
  • Start-Service sshd — запускает сервер sshd.
  • Stop-Service sshd — Остановить сервер sshd.
Читайте также:  Адобе флеш плеер для линукс минт 17. Установка Flash Player в Ubuntu

Мы также можем настроить сервер из PowerShell для автоматического запуска с помощью команды:

  • Set-Service -Name sshd -StartupType ‘Automatic’

И чтобы убедиться, что порт 22, порт SSH, открыт в нашем брандмауэр мы должны сделать это с помощью команды:

  • Get-NetFirewallRule -Name * ssh *

Что еще

Отдельно хотелось бы рассмотреть случай подключенных пользователей по SSH с возможностью сжатия трафика. В Linux и MacOS для запуска режима компрессии используется модификатор команды с опцией «-C». Соответственно вызов программы доступа приобретает вид: ssh -C <адрес малинки> Работает метод сжатия не только в случаях удаленного контроля консоли по SSH, но и отправки файлов с использованием протокола Secure shell. Здесь применяется команда scp, входящая в общий пакет программ удаленного контроля. Формат со сжатием, для копирования файла из малинки: scp -C [email protected]<адрес малинки>:<путь к файлу вместе с его именем> /куда/положить/файл Ну или с использование ssh обратно, на Raspberry PI: spc -C <имя файла> [email protected]<адрес малинки>:/куда/положить/файл

Что еще

Базовые опции SSH

На данный момент мы обсудили некоторые основные параметры, необходимые для установления соединения:

HostName: фактическое имя хоста, которое должно использоваться для соединения. Оно заменяет любой псевдоним, определенный в заголовке Host. Этот параметр не требуется, если определение Host указывает валидное имя хоста для подключения. User: имя пользователя, с помощью которого нужно создать подключение. Port: порт, по которому работает удаленный демон SSH (эта опция нужна, только если удаленный экземпляр не работает по стандартному порту 22). SSH поддерживает еще много полезных опций, которые нужно рассмотреть.