Что такое OpenSSH? Как включить и использовать OpenSSH в Windows 10

Продолжая тему интеграции систем на базе Linux в доменную инфраструктуру Active Directory (AD), в этой заметке мы рассмотрим вопрос настройки Single sign-on (SSO) при подключении к Linux-серверу на базе Ubuntu Server 14.04 LTS по протоколу SSH с клиентских компьютеров под управлением Windows. Начнём с настроек на стороне Linux-сервера, который будет выступать в качестве сервера SSH на базе пакета OpenSSH (описание установки и базовой настройки рассмотрено ранее).

Установка ssh сервера

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

sudo apt-get update

Списки пакетов должны обновиться как на скриншоте ниже.

В Debian SSH-сервер представлен в виде пакета «openssh-server». Чтобы установить OpenSSH в Debian, выполните следующую команду:

sudo apt-get install openssh-server

Введите «Y» и нажмите <Enter> для продолжения.

SSH-сервер установился.

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

sudo systemctl status ssh

Вы должны увидеть статус «active (running)», как показано на скриншоте ниже. Это означает, что сервер SSH работает. Он прослушивает порт 22.

Если ssh-сервер не работает, вы можете использовать следующую команду, чтобы запустить его.

sudo systemctl start ssh

Действия по включению OpenSSH в Windows 10

С функциями Windows:

Перейдите в «Настройки»> «Приложения»> «Приложения и функции» или перейдите по этому адресу:

мс-настройки: appsfeatures

Теперь нажмите Управление дополнительными функциями.

Выберите Добавить функцию. Это приведет вас к новой странице.

Прокрутите вниз до Клиент OpenSSH (бета) и Сервер OpenSSH (бета) .

Установите их оба и перезагрузите компьютер

Это загрузит и установит все компоненты по этому пути:

C: \ Windows \ System32 \ OpenSSH

Теперь вы можете использовать Powershell или командную строку (CMD), чтобы перейти к указанному пути, а затем начать работать с SSH, как в Linux.

С подсистемой Windows для Linux (WSL)

Прежде всего, откройте меню «Пуск» и введите Функции Windows , а затем выберите Включить и выключить функции Windows.

Установите флажок Подсистема Windows для Linux и нажмите ОК.

Перейдите в магазин Microsoft Store и найдите Ubuntu .

Установите это приложение.

Теперь выполните поиск Ubuntu в меню «Пуск» или в Cortana, чтобы запустить командную строку Linux Bash и использовать возможности SSH.

В настоящее время эта функция перенесена в Windows 10 с помощью Win32 Port самой Microsoft. В настоящее время доступно обновление для Windows 10 Fall Creators: , но если вы зайдете в их репозиторий GitHub, вы обнаружите, что последняя версия – , которая новее встроенного и, следовательно, будет гораздо более стабильным. Вы можете прочитать больше об установке через Powershell в их документации по GitHub, указанной выше.

Наконец, похоже, что Microsoft усиливает использование технологий с открытым исходным кодом, интегрируя их непосредственно в Windows 10 и улучшая их для разработчиков. Это делает утверждение Терри Майерсона (исполнительного вице-президента группы разработчиков Windows в Microsoft) верным, что

«Windows 10 – лучшая чертова девбокс на планете».

И мы не можем дождаться добавления более полезных функций, подобных этой, во встроенную Windows 10!

Сгенерировать SHH в Windows 10

  1. Вам будет предложено подтвердить место сохранения (можете изменить путь). Нажмите Enetr и место будет по умолчанию.
  2. Далее вам будет предложено задать пароль (ключевую фразу) к ключу, он не отображается при вводе, но вводится. Можно без пароля, нажать сразу Enter.
  3. Подтверждение выше заданного пароля.
Читайте также:  Как включить сжатие файлов в системе NTFS на Windows 10

Windows сгенерирует вашу пару открытых\закрытых ключей RSA. Открытый ключ будет сохранен как «id_» в указанной вами директории. Загрузите этот ключ на любые ПК, на которых вам нужен SSH. Затем вы можете открыть соединение, используя встроенный SSH-клиент Windows — введите «ssh [email protected]», чтобы подключиться и аутентифицироваться, используя ваши сгенерированные учетные данные.

Смотрите еще:

  • Быстродействие системы (System Idle Process) грузит процессор
  • Мониторинг CPU, GPU и RAM поверх окон в Windows 10
  • Исправить ошибку BlinitializeLibrary failed 0xc00000bb в Windows 10
  • Сетевой адаптер не имеет допустимых параметров настройки IP
  • Как удалить службу в Windows 10

Установка ключа

Чтобы установить открытый ключ (public key), подключитесь к серверу, отредактируйте файл authorized_keys Вашим любимым редактором и вырежьте и вставьте вывод открытого ключа в файл authorized_keys. Сохраните файл.

Теперь осталось добавить наш приватный ключ (Privat key) в ssh-agent’a «Pageant» («Пуск» —> «PuTTY» —> «Pageant«).

Pageant приложение, входящее в дистрибутив PuTTY.

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

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

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

Далее, все загруженные ключи доступны в списке ключей (пункт меню View Keys):

Теперь логинимся в PuTTY. 

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

Если Вы сделали всё правильно, то увидите сообщение:

login as: root Authenticating with public key «rsa-key-20171120» from agent

Готово

Подключение к Windows по SSH как в Linux

Меня всегда удручало подключение к Windows машинам. Нет, я не противник и не сторонник Microsoft и их продуктов. Каждый продукт существует для своей цели, но речь не об этом. Для меня всегда было мучительно больно подключаться к серверам с Windows, потому что эти подключения либо настраиваются через одно место (привет WinRM с HTTPS) либо работают не очень стабильно (здравствуй RDP к виртуалкам за океаном).

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

Варианты установки:

  1. Вручную
  2. Через пакет Chocolatey
  3. Через Ansible, например роль _openssh

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

Отмечу, что данный проект пока что находится на стадии beta, поэтому его не рекомендуют использовать в production.

Итак, скачиваем последний релиз, на текущий момент это Есть версии как для 32 так и для 64 битных систем.

Распаковываем в C:\Program Files\OpenSSH Обязательный момент для корректной работы: права на запись в этой директории должны быть только у SYSTEM и у админской группы.

Устанавливаем сервисы скриптом находящимся в этой директории

Разрешаем входящие подключения на 22 порт:

Уточнение: апплет New-NetFirewallRule используется на Windows Server 2012 и новее. В наиболее старых системах (либо десктопных) можно воспользоваться командой:

При запуске будут автоматически сгенерированы хост-ключи (если отсутствуют) в %programdata%\ssh

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

Так же, можно сменить командную оболочку по умолчанию (после установки, по умолчанию — cmd):

Уточнение: Необходимо указывать абсолютный путь.

А дальше настраиваем sshd_config, который расположем в C:\ProgramData\ssh. Например:

И создаем в пользовательской папке директорию .ssh, а в ней файл authorized_keys. Туда записываем публичные ключи.

Важное уточнение: права на запись в этот файл, должен иметь только пользователь, в чьей директории лежит файл.

Но если у вас проблемы с этим, всегда можно выключить проверку прав в конфиге:

К слову, в C:\Program Files\OpenSSH лежат 2 скрипта (, ), которые должны но не обязаны фиксить права, в том числе и с authorized_keys, но почему-то не фиксят.

Не забывайте перезапускать сервис sshd после для применения изменений.

  • Стандартный подход к подключению к серверам. Когда есть немного Windows машин, очень неудобно когда: Так, сюда мы ходим по ssh, а тут рдп, и вообще best-practice с бастионами, сначала ssh-туннель, а через него RDP.
  • Простота настройки Считаю что это очевидно.
  • Скорость подключения и работы с удаленной машиной Нет графической оболочки, экономятся как ресурсы сервера, так и количество передаваемых данных.

Минусы:

  • Не заменяет RDP полностью. Не все можно сделать из консоли, увы. Я имею ввиду ситуации, когда требуется GUI.

Материалы использованные в статье: Ссылка на сам проектВарианты установки бессовестно скопированы с Ansible docs.

источник

Конвертация ключа PuTTY

PuTTy использует собственный формат ключей. Поэтому если вы сгенерировали приватный ключ в личном кабинете Airnode (при помощи OpenStack) или в другой программе, а подключение к виртуальному серверу хотите делать через Putty, необходимо конвертировать приватный ключ.

Откройте приложение «PuTTYgen».

Нажмите «conversation» и выберите «Import key».

Выберите фаил с ключом и откройте его.

После этого сохраните преобразованный приватный ключ с помощью кнопки «Save private key».

Также доступна обратная процедура — если вы захотите сменить SSH-агент с PuTTy на любой другой, нужно сконвертировать ключ в формат OpenSSH. Для этого используйте меню «Conversions / Import key»:

Использование SSH в Windows PowerShell

После того, как SSH установлен и работает, вы можете использовать его для связи с другим компьютером. Например, вы можете использовать его для доступа к Raspberry Pi (один из нескольких вариантов удаленного доступа).

для этого маленького компьютера).

Использование простое. В PowerShell введите команду ssh, затем имя пользователя для учетной записи на удаленном устройстве и его IP-адрес.

Например, чтобы подключиться к моей коробке Raspberry Pi под управлением RetroPie, я использовал:

ssh [email protected]

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

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

Применение протокола SSH для копирования файлов

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

Для Linux-платформы при копировании файлов через SSH используется утилита SCP (secure copy).

Например, чтобы скопировать файл “data” с локальной машины на удаленный сервер, применяется команда вида “scp data [email protected]:data”.

Утилита scp запросит пароль пользователя и затем выполнит копирование:

Для Windows платформы используется протокол SFTP (Secure FTP), разработанный как замена обычного FTP.

Поддержка SFTP есть в популярном клиенте Filezilla. Для соединения необходимо знать имя пользователя и его пароль на удаленном сервере.

1. Чтобы указать использование протокола SFTP, в Filezilla перед адресом удаленного сервера в соответствующем поле добавьте префикс “sftp://”:

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

Если вы авторизовались при помощи SSH-ключа, то в случае с Linux ввод пароля не требуется, а в случае с Windows — ввод пароля также не нужен, но необходим путь к файлу с SSH-ключом.

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

Теперь вы можете попробовать подключиться к своей Windows 10 через SSH клиент (я использую putty, но можно пользоваться встроенным ssh клиентом Windows).

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

Нажимаем Да, и в открывшееся окне авторизуемся под пользователем Windows.

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

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

Я предпочитаю работать в командной строке PowerShell. Чтобы запустить интерпретатор PowerShell, выполните:

Чтобы изменить Shell по умолчанию в OpenSSH с на PowerShell, внесите изменение в реестр такой командой:

New-ItemProperty -Path «HKLM:\SOFTWARE\OpenSSH» -Name DefaultShell -Value «C:\Windows\System32\WindowsPowerShell\v1.0\» -PropertyType String –Force

Осталось перезапустить SSH подключение и убедиться, что при подключении используется командный интерпретатор PowerShell (об этом свидетельствует приглашение PS C:\Users\admin> ).

В SSH сессии запустилась консоль PowerShell, в которой работают привычные функции: авто дополнение, раскраска модулем PSReadLine, история команд и т.д. Если текущий пользователь входит в группу локальных администраторов, то все команды в его сессии выполняются с повышенными правами даже при включенном UAC.

Источник

Как зайти на виртуальный сервер (VPS/VDS) или Slidebar с Linux по SSH

УслугиСвязанные услуги:ОглавлениеWindows

Для подключения к виртуальному серверу (VPS/VDS) на Linux по SSH через OC Windows нужно:

Установить клиент, который будет заходить по SSH на сервер. Рекомендуем программу PuTTY. После скачивания, установите и запустите программу.

2) Далее узнаете IP-адрес виртуального сервера. Зайдите в личный кабинет на страницу с информацией о виртуальном сервере.

3) Вписываете IP-адрес виртуального сервера в программу PuTTY, как это показано на скриншоте и нажмите кнопку открыть.

4) Появится предупреждение, нажмите “ОК”

5) Введите логин и пароль от виртуального сервера. Данные записаны в личном кабинете.

6) Впишите логин, нажмите кнопку “Enter”, далее пароль и опять нажмите “Enter”. Если все правильно, вы зайдете на виртуальный сервер по SSH

Linux

Для подключения к виртуальному серверу (VPS/VDS) на Linux по SSH через операционные системы на базе Linux нужно:

Зайти в приложение Terminal

2) Узнаете IP-адрес виртуального сервера, логин и пароль для доступа к серверу. Зайдите в личный кабинет на страницу с информацией о виртуальном сервере.

3) Пишите такую команду SSH ЛОГИН@IP-адрес (пример: SSH [email protected]) и нажимаете Enter на клавиатуре.

4) Вводите пароль, который указан в личном кабинете (при вводе пароля в терминал пароль не показывается в целях безопасности) и нажимаете Enter на клавиатуре . Вы подключены к серверу по SSH.

macOS

Для подключения к виртуальному серверу (VPS/VDS) на Linux по SSH через macOS нужно:

Зайти в приложение , которое установлено на операционных системах macOS

2) Узнаете IP-адрес виртуального сервера, логин и пароль для доступа к серверу. Зайдите в личный кабинет на страницу с информацией о виртуальном сервере.

3) Пишите такую команду SSH ЛОГИН@IP-адрес (пример: SSH [email protected]) и нажимаете Enter на клавиатуре.

4) Соглашаетесь с условиями, пишите “yes” и жмете Enter на клавиатуре.

5) Вводите пароль, который указан в личном кабинете (при вводе пароля в терминал пароль не показывается в целях безопасности) и нажимаете Enter на клавиатуре . Вы подключены к серверу по SSH.

Для подключения к виртуальному серверу (VPS/VDS) на Linux по SSH через iOS нужно:

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

Заходите в программу и выбрать пункт “SSH”

Как зайти на виртуальный сервер (VPS/VDS) или Slidebar с Linux по SSH

3) Узнаете IP-адрес виртуального сервера, логин и пароль для доступа к серверу. Зайдите в личный кабинет на страницу с информацией о виртуальном сервере.

4) Вводите IP-адрес в строку “Host name or IP address”, логин — “User name”, пароль — “Password” и жмете кнопку “Connect”.

Как зайти на виртуальный сервер (VPS/VDS) или Slidebar с Linux по SSH

Источник