Ssh что это за папка windows 10

В Windows 10 и Windows Server 2019 появился встроенный SSH клиент, который вы можете использовать для подключения к *Nix серверам, ESXi хостам и другим

Содержание

  1. Использование встроенного SSH клиента в Windows 10
  2. Установка клиента OpenSSH в Windows 10
  3. Как использовать SSH клиенте в Windows 10?
  4. SCP: копирование файлов из/в Windows через SSH
  5. Безопасная оболочка (SSH)
  6. использование клиента Windows 10 OpenSSH
  7. Использование PuTTY
  8. Скачивание SSH-клиента
  9. Подключение к устройству
  10. Обновление пароля учетной записи
  11. настройка устройства Windows IoT Core
  12. Часто используемые служебные программы
  13. Установка OpenSSH
  14. Установка OpenSSH с помощью приложения «Параметры» в Windows
  15. Установка OpenSSH с помощью PowerShell
  16. Запуск и настройка OpenSSH Server
  17. Подключение к OpenSSH Server
  18. Удаление OpenSSH с помощью приложения «Параметры» в Windows
  19. Удаление OpenSSH с помощью PowerShell
  20. OpenSSH Что это такое, и с чем это едят
  21. Авторизация по SSH ключу
  22. Шифрованное копирование файлов
  23. Удаляем openssh, 100% защита от ботнета, миф?

Использование встроенного SSH клиента в Windows 10

В Windows 10 и Windows Server 2019 появился встроенный SSH клиент, который вы можете использовать для подключения к *Nix серверам, ESXi хостам и другим устройствам по защищенному протоколу, вместо Putty, MTPuTTY или других сторонних SSH клиентов. Встроенный SSH клиент Windows основан на порте OpenSSH и предустановлен в ОС, начиная с Windows 10 1809.

Установка клиента OpenSSH в Windows 10

Клиент OpenSSH входит в состав Features on Demand Windows 10 (как и RSAT). Клиент SSH установлен по умолчанию в Windows Server 2019 и Windows 10 1809 и более новых билдах.

Проверьте, что SSH клиент установлен:

openssh client ustanovka v windows 10

В нашем примере клиент OpenSSH установлен (статус: State: Installed).

Если SSH клиент отсутствует (State: Not Present), его можно установить:

klient openssh ustanovit komponent

]Бинарные файлы OpenSSH находятся в каталоге c:windowssystem32OpenSSH.

ispolnyaemye fajly openssh

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

ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command]

parametry ssh klienta v windows

Для подключения к удаленному серверу по SSH используется команда:

Если SSH сервер запущен на нестандартном порту, отличном от TCP/22, можно указать номер порта:

Например, чтобы подключиться к Linux хосту с IP адресом 192.168.1.202 под root, выполните:

Затем появится запрос пароля указанной учетной записи, укажите пароль root, после чего должна открытся консоль удаленного Linux сервера (в моем примере на удаленном сервере установлен CentOS 8).

podklyuchenie iz windows 10 v linux s pomoshyu vstroe

Если вы используете SSH аутентификацию по RSA ключам (см. пример с настройкой SSH аутентификации по ключам в Windows), вы можете указать путь к файлу с закрытым ключом в клиенте SSH так:

Также вы можете добавить ваш закрытый ключ в SSH-Agent. Сначала нужно включить службу ssh-agent и настроить ее автозапуск:

set-service ssh-agent StartupType ‘Automatic’
Start-Service ssh-agent

Добавим ваш закрытый ключ в базу ssh-agent:

Теперь вы можете подключиться к серверу по SSH без указания пути к RSA ключу, он будет использоваться автоматически. Пароль для подключения не запрашивается (если только вы не защитили ваш RSA ключ отдельным паролем):

Еще несколько полезных аргументов SSH:

SCP: копирование файлов из/в Windows через SSH

С помощью утилиты scp.exe, которая входит в состав пакета клиента SSH, вы можете скопировать файл с вашего компьютера на SSH сервер:

scp.exe «E:ISOCentOS-8.1.1911-x86_64.iso» root@192.168.1.202:/home
scp exe kopirovanie fajlov cherez ssh

Можно рекурсивно скопировать все содержимое каталога:

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

scp.exe root@192.168.1.202:/home/CentOS-8.1.1911-x86_64.iso e:tmp

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

Источник

Безопасная оболочка (SSH)

Secure Shell (SSH) позволяет удаленно администрировать и настраивать Windows устройства IoT Core.

использование клиента Windows 10 OpenSSH

клиент Windows OpenSSH требует, чтобы ос узла клиента SSH была Windows 10 версии 1803 (17134). кроме того, устройство Windows 10 IoT Базовая должно работать под RS5 Windows Insider Preview выпуска 17723 или более поздней версии.

клиент OpenSSH был добавлен в Windows 10 в 1803 (сборка 17134) как дополнительный компонент. чтобы установить клиент, можно выполнить поиск по запросу управление дополнительными компонентами в параметрах Windows 10. Если клиент OpenSSH не указан в списке установленных компонентов, выберите Добавить компонент.

add a feature

Затем выберите в списке клиент OpenSSH и нажмите кнопку установить.

optional features

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

где host — это IP-адрес Windows устройства IoT Core или имя устройства.

При первом подключении появится сообщение следующего вида:

Введите Да и нажмите клавишу Ввод.

Если необходимо войти как Дефаултаккаунт, а не как администратор, потребуется создать ключ и использовать его для входа. На рабочем столе, с которого планируется подключиться к устройству IoT, откройте окно PowerShell и перейдите в папку личных данных (например, CD

Зарегистрируйте ключ с помощью ssh-агента (необязательно, для интерфейса единого входа). Обратите внимание, что SSH-Add необходимо выполнять из папки, которая является ACL, в качестве пользователя, выполнившего вход в систему (Builtin администраторы NT_AUTHORITY system также ОК). По умолчанию компакт-диск

из PowerShell должен быть достаточно, как показано ниже.

Если ключ не зарегистрирован в ssh-agent, он должен быть указан в командной строке для входа:

Если закрытый ключ зарегистрирован в ssh-agent, необходимо указать только DefaultAccount@host :

При первом подключении появится сообщение следующего вида:

Введите Да и нажмите клавишу Ввод.

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

Кроме того, необходимо задать список ACL для administrators_authorized_keys в соответствии с ACL ssh_host_dsa_key в том же каталоге.

Настройка ACL с помощью PowerShell

Использование PuTTY

Скачивание SSH-клиента

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

Подключение к устройству

Чтобы подключиться к устройству, сначала необходимо получить IP-адрес устройства. после загрузки устройства Windows IoT Core на экране, подключенном к устройству, будет отображаться IP-адрес:

defaultapp

putty config

putty security prompt

Если соединение прошло успешно, login as: на экране появится запрос на вход.
Введите Administrator и нажмите клавишу ВВОД. Затем введите пароль по умолчанию в p@ssw0rd качестве пароля и нажмите клавишу ВВОД.

putty login

Если вы смогли успешно войти в систему, вы увидите нечто вроде:

putty console

Обновление пароля учетной записи

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

Для этого введите следующую команду в консоли выводимых команд, заменив [new password] строгим паролем:

настройка устройства Windows IoT Core

чтобы иметь возможность развертывать приложения из Visual Studio 2017, необходимо убедиться, что Удаленный отладчик Visual Studio запущена на устройстве Windows IoT Core. Удаленный отладчик должен запускаться автоматически во время загрузки компьютера. Чтобы дважды проверить, используйте команду TList, чтобы вывести список всех запущенных процессов из PowerShell. На устройстве должно быть открыто два экземпляра msvsmon.exe.

время ожидания Удаленный отладчик Visual Studio может истекает после длительных периодов бездействия. если Visual Studio не удается подключиться к устройству Windows IoT Core, попробуйте перезагрузить устройство.

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

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

Часто используемые служебные программы

Источник

Установка OpenSSH

Область применения Windows Server 2019, Windows 10: Windows Server 2022,

OpenSSH — это средство подключения для удаленного входа, использующее протокол SSH. Оно шифрует весь трафик между клиентом и сервером для предотвращения перехвата информации, перехвата подключения и других атак.

OpenSSH можно использовать для подключения устройств с Windows 10 (версия 1809 и более поздние) или Windows Server 2019 с установленным клиентом OpenSSH к таким устройствам с установленным сервером OpenSSH.

Если вы скачали OpenSSH из репозитория GitHub по адресу PowerShell/openssh-portable, следуйте приведенным в репозитории инструкциям, а не инструкциям в этой статье.

Установка OpenSSH с помощью приложения «Параметры» в Windows

Оба компонента OpenSSH можно установить с помощью «Параметров» Windows на устройствах Windows Server 2019 и Windows 10.

Чтобы установить компоненты OpenSSH, сделайте следующее:

Откройте приложение Параметры, выберите элементы Приложения > Приложения и возможности, щелкните Дополнительные возможности.

Просмотрите этот список и определите, установлено ли средство OpenSSH. Если нет, выберите пункт Добавить компонент в верхней части страницы и сделайте следующее:

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

Установка OpenSSH с помощью PowerShell

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

Если ни один из них не установлен, должно отобразиться следующее:

Затем установите нужный серверный или клиентский компонент:

Оба командлета должны вернуть такие выходные данные:

Запуск и настройка OpenSSH Server

Чтобы запустить и настроить OpenSSH Server для первого использования, откройте PowerShell от имени администратора и выполните следующие команды для запуска sshd service :

Подключение к OpenSSH Server

После установки вы можете подключиться к серверу OpenSSH с устройства Windows 10 или Windows Server 2019, на котором установлен клиент OpenSSH, с помощью PowerShell, как показано ниже. Обязательно запустите PowerShell от имени администратора:

Когда подключение будет установлено, отобразится примерно следующее сообщение:

Если выбрать Да, этот сервер будет добавлен в список известных узлов SSH в клиенте Windows.

На этом этапе нужно ввести пароль. В целях безопасности пароль не будет отображаться по мере ввода.

После подключения вы увидите командную оболочку Windows:

Удаление OpenSSH с помощью приложения «Параметры» в Windows

Чтобы удалить OpenSSH с помощью приложения «Параметры» в Windows, сделайте следующее:

Удаление OpenSSH с помощью PowerShell

Чтобы удалить компоненты OpenSSH с помощью PowerShell, выполните следующие команды:

Если служба использовалась во время удаления, может потребоваться перезагрузка Windows.

Источник

OpenSSH Что это такое, и с чем это едят

OpenSSH 1В данной статье я хотел бы рассмотреть продвинутые функции OpenSSH. Мы рассмотрим как теоретическую часть, так и практическую. Зачем.

На одном из моих серверов, в логах я заметил не очень позитивную активность, а именно китайцев, которые перебирали пароли, пытаясь авторизоваться под «админом», «рутом» и прочими логинами. Ок, я бы понял, если бы у меня был бы стандартный порт, но порт у меня был не стандартный, сервер вообще был в качестве тестовой среды и, короче, было странно, я заблокировал пол Китая и забил.

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

Авторизация по SSH ключу

Собственно в OpenSSH есть такая интересная возможность, как авторизация по ключам. Для корректной работы этого метода используется два ключа, открытый (который publik_key) и закрытый (privat_key соответственно). Открытый ключ должен находится в домашней каталоге пользователя, на сервере, на который мы будем заходить, а закрытый ключ должен обитать в домашнем каталоге пользователя, на ноутбуке (или ПК, смартфоне, телефоне, холодильнике, космическом шатле и т.д.) с которого мы будем ломиться на сервер. Далее, при авторизации, грубо говоря, эти ключи сравниваются, клиент авторизуется на сервер, сервер авторизуется у клиента, и клиент попадает на сервер. Само преимущество этого метода заключается в том, что его нельзя украсть, так как при авторизации ключ не передается на сервер, а только доказывает серверу, что у него есть этот ключ.

Ну если, username, мы смогли тебя убедить в том, что это необходимо, то начнем с генерации ключа. Заходим на наш сервер и генерируем ключ из под обычного пользователя (не root):

Далее в ответ «генератор» задаст нам несколько вопросов:

На этом вопросы заканчиваются, а ключи генерируются. Кстати, непонимающие «гуглочитатели» могут задать вопрос, почему я ввел ключ rsa, а не dsa? Все просто, dsa используется только для цифровой подписи, и не используется для шифрования. Так что смело вводите rsa.

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

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

и настроим openssh сервер, чтобы тот не просил логин и пароль, но мог авторизоваться по ключу. Для этого, уже под root пользователем или при помощи sudo, откроем файл конфигурации openssh любимым редактором:

приведем некоторые параметры к подобному виду:

и перезапустим службу openssh:

Но с сервера пока не выходите, особенно если он далеко от вас..

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

Для этого скопируем файл закрытого ключа с сервера при помощи такой прекрасной утилиты, как scp:

и добавим ключ для своего ssh клиента:

Все, на это по идее можно закончить настройку авторизации, и авторизовываться на сервере можно таким образом:

Но мне это не особо удобно. Что я имею в виду? Например мы можем авторизовываться на сервер набрав в терминале

Для этого достаточно в файл

/.ssh/config добавить эти строки:

Это называется Алиасом. Подробно ознакомиться с ключами вы можете на OpenNet.ru или набрав команду man ssh_config.

И еще, если вы собираетесь заходить на серверы с операционной системы Windows при помощи Putty, то вам понадобится утилита PuttyGen.

Шифрованное копирование файлов

Да, что то я ранее упоминал про такую штуку, как scp. Это не то, что вы, возможно, прочли на лурке, а это протокол RCP копирования файлов, использующий в качестве транспорта не RSH, а SSH.

При помощи этого протокола вы сможете копировать файл site1.zip на сервер со своего компьютера, в папку

/my_sites вот такой командой:

Можно скопировать файл sites22.zip с сервера на свой ноутбук в папку sites вот такой командой:

А если, вдруг, ваш ssh работает на другом порту, то делаем копирование вот такой командой:

Ну а в нашем случае, при настроенном алиасе в файле

/.ssh/config, скопировать файл мы сможем такой командой:

Удобненько, не правда ли?

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

В написании этого шедевра мне помогли следующие ресурсы:

Источник

Удаляем openssh, 100% защита от ботнета, миф?

Чем чревато удаление ssh (и клиент и сервер), в случае если удаленный доступ не требуется?

upd: как закрыть все порты кроме 80, и порт, используемый для обновления системы (к примеру у debian)?

45855: 581501832

половина софта работать не будет, которая от них зависит

например все, что требует удаленного управления? (оно как раз нам и ненадо, все верно)

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

94068: 1999080131

Уаление openssh / openssl, 100% от ботнета, миф?

Чем чревато удаление ssh, в случае если удаленный доступ не требуется?

upd: как закрыть все порты кроме 80, и порт, используемый для обновления системы (к примеру у debian)?

94068: 1999080131

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

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

94068: 1999080131

Нет, неадекватное. Скорее всего сломается вообще всё хоть как то связанное с сетью.

ну, вопрос в другом ключе ведь, безопасно ли именно удалить и то и другое, и удалить из iptables исключение для порта 22)

94068: 1999080131

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

55251: 1977988440

убрать sshd со стандартного порта

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

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

121714:922829503

В случае серверов «ломают» как правило именно через 80 порт, а точнее через то похапешное дерьмо, что на нем висит. Так что вперед и с песней, пионер.

94068: 1999080131

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

Зайти помешает длинный сложный пароль или ключ. Речь не о злоумышленнике, а о тупых ботах, которые портов не перебирают, просто чтобы логи не пухли. Злоумышленнику придётся порты сканировать и искать ssh, это не есть вежливое и ожидаемое поведение от хоста и для таких ситуаци есть древний как копролит и надёжный как шотган portsentry например, не считая множества других IDS. Серьёзного дядю и это не испугает конечно, но 99% остальных будут зобанены на этом этапе.

60498: 1572548029

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

Это очень опасно и приводит к износу порта

55541: 1800678090

upd: как закрыть все порты кроме 80, и порт, используемый для обновления системы (к примеру у debian)?

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

143793:930442776

и как это поможет от уязвимости к примеру в движке сайта предоставляющему eval? В том то и дело что никак.

Просто через iptables закрой вх. соединения на 22 порт если конечно тебе самому доступ не нужен. И да, почитай теорию про iptables. Для обновления системы используются исх. соединения, а для доступа к данному пк по ssh вх.

66835: 701634471

если не веришь openssl (и правильно) libressl твой выбор

p

в случае если удаленный доступ не требуется?

Можно конкретный юз-кейс? Не могу себе представить ситуацию, когда доступ в интернет есть, а удалённый доступ в том или ином виде при этом не нужен и не снимает кучу лишнего геморроя.

55404: 418860797

Если у тебя CLI к серверу и так под рукой, или сервер под кроватью, то конечно тебе ssh не нужен.

p

Чем чревато удаление ssh (и клиент и сервер), в случае если удаленный доступ не требуется?

Ох блин. Повесь ssh на нестандартный порт, настрой порт-кноккинг и не морочь себе голову. Если удаленный доступ не требуется, то вообще ничем не чревато.

как закрыть все порты кроме 80, и порт, используемый для обновления системы (к примеру у debian)?

55251: 1977988440

ты наивно считаешь что если в боте реализован перебор паролей, там будет сложно реализовать перебор портов, если 22 не отвечает?

94068: 1999080131

ты наивно считаешь что если в боте реализован перебор паролей, там будет сложно реализовать перебор портов, если 22 не отвечает?

Потому что это тупо невыгодно. Стратегически лучше сразу после отлупа идти дальше по диапазону чем упорно высканивать неведомый порт ssh, который вполне может вообще отсутствовать, и тем самым беспокоить IDS. Сканирующий все порты в IP диапазоне в поисках неведомо чего ботнет долго не проживёт, быстро спалится и будет массово зобанен. Наивен тут ты, предлагаю прекратить несмешную клоунаду.

106718:1345237826

Зачем удалять? Просто останови sshd.

55251: 1977988440

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

Наивен тут ты, предлагаю прекратить несмешную клоунаду.

и перестать давать идиотские советы

Источник

Как вы уже знаете, из предыдущей статьи, Windows 10 включает в себя встроенное программное обеспечение SSH — клиент, и сервер! В этой статье мы рассмотрим, как включить SSH-сервер.

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

В Windows 10, Microsoft, наконец, прислушалась к просьбам пользователей и добавила поддержку протокола OpenSSH в версии обновления Fall Creators.

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

Предоставленный SSH-сервер похож на приложение Linux. На первый взгляд, он поддерживает те же функции, что и его аналог * NIX. Это консольное приложение, но оно работает как служба Windows.

Как включить сервер OpenSSH в Windows 10.

  1. Откройте приложение «Параметры» и перейдите в «Приложения» →  «Приложения и возможности».
  1. Справа нажмите «Управление дополнительными компонентами».

  1. На следующей странице нажмите кнопку «Добавить компонент».

  1. В списке компонентов выберите OpenSSH Server и нажмите кнопку «Установить», это установит программное обеспечение OpenSSH Server в Windows 10

  1. Перезагрузите Windows 10.

Также вы можете установить  клиент SSH с помощью PowerShell.

Откройте PowerShell от имени Администратора и выполните следующую команду и перезагрузите систему:

Get-WindowsCapability -Online | Where-Object{$_.Name -like “OpenSSH.Server*”}

Файлы OpenSSH Server находятся в папке c:windowssystem32Openssh. Помимо клиентских приложений SSH, папка содержит следующие серверные инструменты:

  • SFTP-server.exe
  • SSH-agent.exe
  • SSH-keygen.exe
  • sshd.exe
  • конфигурационный файл «sshd_config».

Сервер SSH настроен для работы в качестве службы.

На момент написания этой статьи он не запускается автоматически. Вам нужно включить его вручную.

Как запустить сервер OpenSSH в Windows 10.

  1. Откройте Службы, (нажмите клавиши Win + R и введите  services.msc в поле «Выполнить») и запустите службу sshd. дважды кликните на запись sshd, чтобы открыть ее свойства.

  1. На вкладке «Вход в систему» см. Учетную запись пользователя, которая используется сервером sshd. В моем случае это  NT Service sshd 

  1. Теперь откройте командную строку или PowerShell от имени администратора .

С помощью этой команды перейдите в каталог Openssh

cd c:windowssystem32Openssh
  1. Здесь запустите команду для создания ключей безопасности для сервера sshd:
ssh-keygen -A

Сервер Sshd сгенерирует ключи

  1. Теперь в командной строке введите: explorer.exe, чтобы запустить Проводник в папке OpenSSH.

  1. Кликните правой кнопкой мыши файл ssh_host_ed25519_key и измените владельца файла на пользователя службы sshd, например  NT Servicesshd.

  1. Нажмите кнопку «Добавить» и добавьте разрешение «Чтение» для пользователя «NT Servicesshd».
  2. Теперь удалите все другие разрешения, чтобы получить что-то вроде этого:

  1. Нажмите «Применить» и подтвердите операцию.
  1. Наконец, откройте службы (нажмите клавиши Win + R и введите  services.msc в поле «Выполнить») и запустите службу sshd. Она должна запустится:

Служба Sshd работает.

  1. Теперь необходимо разрешить использование SSH-порта в брандмауэре Windows. По умолчанию сервер использует порт 22. Запустите эту команду в командной строке или PowerShell от имени администратора:
netsh advfirewall firewall add rule name="SSHD Port" dir=in action=allow protocol=TCP localport=22

  1. Наконец, установите пароль для своей учетной записи пользователя, если у вас его нет.

Теперь вы можете попробовать его в действии.

Подключение к SSH-серверу в Windows 10.

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

В общем случае синтаксис для клиента консоли OpenSSH выглядит следующим образом:

Имя пользователя ssh @ host -p

В моем случае команда выглядит следующим образом:

ssh alex_@192.168.1.126

Где alex_ — мое имя пользователя Windows, а  192.168.1.126 — это IP-адрес моего ПК с Windows 10. Я подключусь к нему с другого компьютера, Windows 10.

Вход.

Сервер запускает классические консольные команды Windows, например: more, type, ver, copy.

Но я не могу запустить FAR Manager. Он выглядит совсем сломанным:

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

Встроенный SSH-сервер определенно интересен. Он позволяет управлять компьютером сWindows 10, без установки сторонних инструментов, как rdesktop и др..

Начиная с этой версии, встроенный SSH-сервер в Windows 10 находится на стадии BETA, поэтому в будущем он должен стать, более интересным и полезным.

I feel like I am missing some fundamental concept as to how the .ssh directory works in windows. I have had no issues when working in OSX/Linux like I am having now. My end goal is simply to move my existing ssh key into the default ~/.ssh directory, and update the config if I so choose (you know, normal ssh key related tasks).

However, any time I have tried to move my existing SSH key over to the ~/.ssh directory, or open it, or even create a config file I just get the following error (in either gitbash, puttygen, etc…):

Puttygen (saving the key to disk):

Overwrite existing file C:Usersme.ssh?

or in gitbash (attempting to do anything, including just create the config file):

touch: creating `/c/Users/me/.ssh/config': No such file or directory

cd ~/.ssh

sh.exe": cd: /c/Users/me/.ssh: Not a directory

What am I missing/not understanding?

Kind Regards,
u353

asked Apr 14, 2014 at 15:27

u353's user avatar

u353u353

9502 gold badges8 silver badges16 bronze badges

5

This answer for Windows environment:

At the beginning, Windows didn’t have .ssh folder.
Create an ssh key file pair like this (ssh-keygen is nowadays a native Windows command, that comes with Windows 10+11):

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" (must run your terminal as administrator).

Your is_rsa and id_rsa.pub files will be placed under C:Usersyour_username

So, you need to create the folder C:Usersyour_username.ssh then copy your ssh files (the extensionless private key and the public key ending in .pub) to there.

You also have to create file C:Usersyour_username.sshconfig and edit it for the first time.

Next ssh will be placed in the .ssh folder automatically.

Note: ~/ under Linux is the equivalent of C:Usersyour_username on Windows

Frank N's user avatar

Frank N

9,2984 gold badges76 silver badges107 bronze badges

answered Oct 9, 2019 at 3:44

dqthe's user avatar

dqthedqthe

6455 silver badges8 bronze badges

I have created and regularly use a «.ssh» directory on Windows 7; as mentioned in the above comments, Windows Explorer doesn’t support them, or more specifically, the error-checking in Windows Explorer does not allow you to give a file name that starts with a period. That same restriction does not exist in the command prompt or powershell.

Also, as mentioned above, it appears you have a file called «.ssh» in your home directory, which must be removed before you can create a folder named «.ssh».

Once such a folder exists, you can open it and change/create files in it using Windows Explorer; it just won’t let you name a folder/file «.ssh» directly.

Gitbash should directly allow you to run «rm .ssh» and «mkdir .ssh», at which point everything else should work.

answered Nov 10, 2015 at 7:58

Bryson's user avatar

BrysonBryson

811 silver badge3 bronze badges

It is quite possible to add a . in the beginning of a directories name using File Explorer, it can be easily done by adding a . at the end of the directory name as well. For example:

To create a directory named .shh, just add the name as .ssh. and it will be created without any error.

And as @Bryson mentioned, this can be done from the cli as well, without appending a . at the end.

answered Oct 17, 2018 at 13:59

mega6382's user avatar

mega6382mega6382

9,03117 gold badges48 silver badges69 bronze badges

Coming to this in 2018, given that on Windows 10 you have the Optional Feature OpenSSH client installed it appears that on Windows a .ssh folder is created for you under C:Users<your_username>.ssh

This is a feature that allows you to use PowerShell to SSH into remote hosts, and seems to be pretty similar in usage to the Linux/Unix equivalent. It was already installed for me when I setup my computer, but you can read the following for how to verify it’s installed or install it:

You can check if it’s installed by going to Settings -> Manage Optional Features, and then checking if you see OpenSSH in the list. If it is then your .ssh folder is probably in your home directory C:Users<your_username>.ssh. If you need to install it then click «Add a feature», locate OpenSSH Client, click it and click install to install it.

answered Nov 28, 2018 at 16:15

cody.codes's user avatar

cody.codescody.codes

1,2241 gold badge14 silver badges22 bronze badges

Use git bash on windows
go to home directory as

$ cd

then to check .ssh folder on home directory use

$ ls -A 

you will be able to see a ./ssh folder there

$ cd ./ssh
$ ls

you will be able to see the config files if exists

To transfer any key-pair or any files to this folder use below command
First to that directory in which you already have key-pair

$ cp name_of_key-pair_file.pem ~/.ssh/

answered Jun 28, 2020 at 5:56

Kartik Punjabi's user avatar

2

First of all, if you want to generate SSH files, all you need to do is run this command:

ssh-keygen

Once you did, .ssh folder will be generated in this path:

C:Usersyour_username

For checking what files are in .ssh folder you can easily run this command:

ls ~/.ssh

with this above command, you can see all your ssh files which would be like this:

id_rsa   id-rsa.pub

Please note that:

id_rsa : It’s a private file and
id-rsa.pub : It’s a public file

so, if you like to see inside of that file or whatever you like just type this command :

cat ~/.ssh/id_rsa.pub

answered Nov 9, 2021 at 16:41

Babak's user avatar

BabakBabak

832 silver badges3 bronze badges

To solve this problem I used git batsh console

answered May 11, 2021 at 23:06

Joselin Ceron's user avatar

This isn’t supported as Windows doesn’t recognize dot files as directories.

answered Apr 16, 2014 at 17:03

u353's user avatar

u353u353

9502 gold badges8 silver badges16 bronze badges

1

I feel like I am missing some fundamental concept as to how the .ssh directory works in windows. I have had no issues when working in OSX/Linux like I am having now. My end goal is simply to move my existing ssh key into the default ~/.ssh directory, and update the config if I so choose (you know, normal ssh key related tasks).

However, any time I have tried to move my existing SSH key over to the ~/.ssh directory, or open it, or even create a config file I just get the following error (in either gitbash, puttygen, etc…):

Puttygen (saving the key to disk):

Overwrite existing file C:Usersme.ssh?

or in gitbash (attempting to do anything, including just create the config file):

touch: creating `/c/Users/me/.ssh/config': No such file or directory

cd ~/.ssh

sh.exe": cd: /c/Users/me/.ssh: Not a directory

What am I missing/not understanding?

Kind Regards,
u353

asked Apr 14, 2014 at 15:27

u353's user avatar

u353u353

9502 gold badges8 silver badges16 bronze badges

5

This answer for Windows environment:

At the beginning, Windows didn’t have .ssh folder.
Create an ssh key file pair like this (ssh-keygen is nowadays a native Windows command, that comes with Windows 10+11):

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" (must run your terminal as administrator).

Your is_rsa and id_rsa.pub files will be placed under C:Usersyour_username

So, you need to create the folder C:Usersyour_username.ssh then copy your ssh files (the extensionless private key and the public key ending in .pub) to there.

You also have to create file C:Usersyour_username.sshconfig and edit it for the first time.

Next ssh will be placed in the .ssh folder automatically.

Note: ~/ under Linux is the equivalent of C:Usersyour_username on Windows

Frank N's user avatar

Frank N

9,2984 gold badges76 silver badges107 bronze badges

answered Oct 9, 2019 at 3:44

dqthe's user avatar

dqthedqthe

6455 silver badges8 bronze badges

I have created and regularly use a «.ssh» directory on Windows 7; as mentioned in the above comments, Windows Explorer doesn’t support them, or more specifically, the error-checking in Windows Explorer does not allow you to give a file name that starts with a period. That same restriction does not exist in the command prompt or powershell.

Also, as mentioned above, it appears you have a file called «.ssh» in your home directory, which must be removed before you can create a folder named «.ssh».

Once such a folder exists, you can open it and change/create files in it using Windows Explorer; it just won’t let you name a folder/file «.ssh» directly.

Gitbash should directly allow you to run «rm .ssh» and «mkdir .ssh», at which point everything else should work.

answered Nov 10, 2015 at 7:58

Bryson's user avatar

BrysonBryson

811 silver badge3 bronze badges

It is quite possible to add a . in the beginning of a directories name using File Explorer, it can be easily done by adding a . at the end of the directory name as well. For example:

To create a directory named .shh, just add the name as .ssh. and it will be created without any error.

And as @Bryson mentioned, this can be done from the cli as well, without appending a . at the end.

answered Oct 17, 2018 at 13:59

mega6382's user avatar

mega6382mega6382

9,03117 gold badges48 silver badges69 bronze badges

Coming to this in 2018, given that on Windows 10 you have the Optional Feature OpenSSH client installed it appears that on Windows a .ssh folder is created for you under C:Users<your_username>.ssh

This is a feature that allows you to use PowerShell to SSH into remote hosts, and seems to be pretty similar in usage to the Linux/Unix equivalent. It was already installed for me when I setup my computer, but you can read the following for how to verify it’s installed or install it:

You can check if it’s installed by going to Settings -> Manage Optional Features, and then checking if you see OpenSSH in the list. If it is then your .ssh folder is probably in your home directory C:Users<your_username>.ssh. If you need to install it then click «Add a feature», locate OpenSSH Client, click it and click install to install it.

answered Nov 28, 2018 at 16:15

cody.codes's user avatar

cody.codescody.codes

1,2241 gold badge14 silver badges22 bronze badges

Use git bash on windows
go to home directory as

$ cd

then to check .ssh folder on home directory use

$ ls -A 

you will be able to see a ./ssh folder there

$ cd ./ssh
$ ls

you will be able to see the config files if exists

To transfer any key-pair or any files to this folder use below command
First to that directory in which you already have key-pair

$ cp name_of_key-pair_file.pem ~/.ssh/

answered Jun 28, 2020 at 5:56

Kartik Punjabi's user avatar

2

First of all, if you want to generate SSH files, all you need to do is run this command:

ssh-keygen

Once you did, .ssh folder will be generated in this path:

C:Usersyour_username

For checking what files are in .ssh folder you can easily run this command:

ls ~/.ssh

with this above command, you can see all your ssh files which would be like this:

id_rsa   id-rsa.pub

Please note that:

id_rsa : It’s a private file and
id-rsa.pub : It’s a public file

so, if you like to see inside of that file or whatever you like just type this command :

cat ~/.ssh/id_rsa.pub

answered Nov 9, 2021 at 16:41

Babak's user avatar

BabakBabak

832 silver badges3 bronze badges

To solve this problem I used git batsh console

answered May 11, 2021 at 23:06

Joselin Ceron's user avatar

This isn’t supported as Windows doesn’t recognize dot files as directories.

answered Apr 16, 2014 at 17:03

u353's user avatar

u353u353

9502 gold badges8 silver badges16 bronze badges

1

Зачем нужен протокол SSH?

Обычные пользователи почти всегда работают с компьютером локально. То есть они физически находятся у компьютера, используют имеющиеся у него устройства ввода-вывода (клавиатуру, мышь, дисплей) для выполнения необходимых операций. Однако, не всегда есть возможность физически находиться у компьютера, с которым нужно работать. Например, если вы хотите создать свой сайт, то он будет размещен на компьютере хостинг-провайдера. Этот компьютер может находиться на другом конце света. Вам нужен способ запускать команды на этом компьютере не выходя из своего дома. При профессиональной работе с компьютерами часто возникает потребность выполнять определенные операции на удаленных машинах. Например, системный администратор может обслуживать компьютерную сеть, состоящую из десятков компьютеров. Было бы очень неудобно постоянно физически перемещаться между компьютерами. Более того, удаленный компьютер может располагаться, например, в центре обработки данных у облачного провайдера, или быть вообще виртуальной машиной на кластере. Такое часто бывает при использовании облачных систем.

Datacenter
Источник: securityboulevard.com.

Специально для таких случаев существуют протоколы удаленного доступа. Они позволяют подключиться к удаленному компьютеру и работать на нем так же, как вы обычно работаете на локальной физической машине. Такие протоколы разделяются на графические и текстовые. Графические протоколы, например, RDP (remote desktop protocol) передают по сети изображение графического интерфейса в одну сторону, движения мыши и события клавиатуры — в другую. Текстовые протоколы, такие как Telnet или SSH, передают только текстовую информацию и позволяют работать в терминале удаленной машины. Здесь мы рассмотрим самый популярный текстовый протокол удаленного доступа — SSH.

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

Протокол — это набор соглашений, правил, по которым разные программы могут обмениваться информацией. SSH — это набор правил, который известен и вашему компьютеру, и физически отдаленному компьютеру. Пример: вы вводите команду удаления файла, и эта команда передается на другой компьютер и выполняется там. Ответ (или сообщение об ошибке) возвращается и показывается на вашем компьютере.

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

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

Как и большинство сетевых протоколов, SSH работает по клиент-серверному принципу. То есть на вашем компьютере, за которым вы работаете физически должна быть установлена специальная программа — ssh клиент. С ее помощью вы и будете подключаться к другим машинам. А на удаленной машине, то есть той, к которой вы подключаетесь должна работать другая программа — ssh сервер. Она будет принимать ваше подключение, выполнять ваши команды, следить за правами доступа и так далее. Как настроить и клиент и сервер мы поговорим далее.

Выводы:

  1. При работе часто возникает потребность выполнять операции на разных удаленных хостах.
  2. Обычное незащищенное соединение для этого не подходит из-за проблем с безопасностью.
  3. Протокол SSH позволяет выполнять команды терминала на удаленной машине.
  4. Протокол SSH начинает шифровать соединение еще до ввода пароля пользователя.
  5. Таким образом можно подключаться к любым машинам, физическим и виртуальным.
  6. SSH является клиент-серверным протоколом. На локальной машине работает клиент ssh, на удаленной — сервер.

Что нужно для успешного удаленного доступа?

SSH client and server
Источник: Wikimedia.

Для того, чтобы иметь возможность подключиться к удаленной машине нужно соблюдение нескольких условий. Во-первых, как мы уже говорили, на ней должен быть установлен и работать ssh сервер. Существуют разные сервера, но самым распространенным является свободный и бесплатный сервер openssh. Он существует и для Linux и для Windows и для других операционных систем. Во многие дистрибутивы Linux, ориентированные на серверную работу он устанавливается по умолчанию. Если же его нет, то установить его очень просто командой:

1
$ sudo apt install openssh-server

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

Обратите внимание, что удаленная машина не должна быть скрыта NAT’ом или каким-либо сетевым экраном, блокирующим входящие соединения. Кстати, домание компьютеры, выходящие в интернет через обычного провайдера, как правило, как раз скрыты за NAT. Поэтому, находясь в своей домашней сети, вы сможете подключиться к другому компьютеру в ней, а извне — нет.

Протокол ssh никак не связан с интернетом. Вы можете подключаться к машинам, которые подключены в общую локальную сеть, независимо от того, есть ли выход в интернет. В любом случае, вы должны знать адрес удаленной машины, чтобы к ней подключиться. Обычно используется IP-адрес. Но если у сервера есть назначенное доменное имя — можете использовать его.

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

Еще одно необходимое условие — знание учетной записи пользователя на удаленной машине. Помните, что после подключения вы первым делом должны будете авторизоваться на сервере. Поэтому для этого вы должны знать имя пользователя и его пароль. Этот пользователь должен быть зарегистрирован именно на удаленной машине. Ваш локальный пользователь не подойдет. Если вы сами настраиваете сервер, то такое надо предусмотреть заранее. Например завести специального пользователя, предназначенного именно для того, чтобы под ним на эту машину заходили по протоколу ssh.

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

Как мы уже говорили, на локальной машине должне быть установле ssh-клиент. В *nix-подобных системах (Linux, macOS) клиент обычно установлен в системе по умолчанию, и достаточно открыть терминал и воспользоваться командой ssh. В Windows нужно скачать сторонний клиент, например, Putty. SSH-клиентов тоже существует много разных. Есть даже графические клиенты. Но даже в них придется работать в командной строке — ведь сам протокол ssh — чисто текстовый.

Выводы:

  1. Для подключения нужно знать адрес сервера, логин и пароль, порт подключения (по умолчанию, 22) .
  2. Еще нужно, чтобы сетевая инфраструктура была правильно настроена.
  3. Нужно, чтобы на удаленной машине работал сервер SSH.
  4. Самый распространенный сервер — OpenSSH — бесплатный и открытый.
  5. Нужно, чтобы удаленная машина была доступна по сети.
  6. Системные администраторы могут заблокировать доступ к порту ssh.
  7. По умолчанию, порты обычно закрыты, нужно их открыть.
  8. На локальной машине должен быть установлен клиент ssh.
  9. Есть консольные и графические клиенты ssh, но работать все равно придется в терминале.

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

Для подключения нужно воспользоваться командой ssh. при запуске нужно указать адрес сервера, имя пользователя и, опционально, порт подключения. Вот как выглядит команда при использовании консольного клиента (в терминале):

1
$ ssh username@remote_host -p port

Например, для подключения к серверу 52.307.149.244 в аккаунт user нужно ввести:

1
$ ssh user@52.307.149.244

Если не указывать порт, то будет использован порт SSH по умолчанию — 22. Используемый порт задается при настройке SSH-сервера.

При первом подключении к конкретному серверу появится такое сообщение:

1
2
3
The authenticity of host '52.307.149.244 (52.307.149.244)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Введите yes в первый раз.

Это нужно для повышения безопасности. При настройке SSH-сервера создается уникальная комбинация символов — fingerprint («отпечатки пальцев»). Ваш компьютер запоминает эту комбинацию и сверяет ее при каждом новом соединении. Если кто-то переустановит SSH-сервер, или всю операционную систему, или вообще заменит удаленный компьютер, сохранив его адрес, то при следующем соединении вы узнаете об этом, потому что изменится fingerprint. Если fingerprint не меняется, то такое сообщение не будет появляться.

Простейший вариант — подключение по паролю. После ввода команды ssh система запросит пароль:

1
2
$ ssh ivan@52.307.149.244
password: 

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

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

styled-image

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

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

Для выхода из удаленного сеанса необходимо нажать комбинацию клавиш Ctrl + D. Либо можно ввести команду exit.

Выводы:

  1. Команда ssh username@remote_host осуществляет подключение к удаленному терминалу.
  2. Если вы подключились к этому компьютеру первый раз, нужно будет подтвердить его.
  3. Опция -p позволяет подключиться по любому номеру порта.
  4. После установки соединения вам нужно будет ввести пароль от удаленной учетной записи.
  5. После этого вы сможете работать в командной строке так же, как и на локальной машине.
  6. Для выхода из удаленного сеанса есть команда exit или сочетание Ctrl + D.

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

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

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

Поэтому пару ключей можно использовать и для авторизации. Один из ключей — тот, что используется для шифрования — назвается приватным. Его нельзя никому передавать, показывать или пересылать. Его надо хранить в секрете. Второй ключ — публичный — используется для расшифровывания. Вот его можно передавать кому угодно. Обратите внимание, что если какие-то данные удается расшифровать вашим публичным ключом, это значит, что они были зашифрованы вашим приватным ключом, и никаким другим. А так как ваш приватный ключ знаете только вы, значит и отправили эти данные именно вы. Так публичный ключ как бы подтверждает вашу личность.

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

Итак, чтобы использовать авторизацию по ключу надо первым делом сгенерировать свою собственную пару ключей. Для этого используется программа ssh-keygen, которая включена в пакет ssh-клиента.

Создадим пару ключей:

Программа запустится и спросит, куда сохранять ключи:

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):

Нажмите Enter для сохранения в стандартное место — директорию .ssh/id_rsa в вашей домашней директории.

Программа запросит passphrase. Это вроде пароля для ключа. Пароль используется для дополнительной защиты — его надо будет вводить каждый раз при использовании ключа. Идея в том, что вместо разных паролей придется запомнить только один — от ключа. Можно просто нажать Enter и пропустить этот шаг.

1
2
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Ключи созданы:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
8c:e9:7c:fa:bf:c4:e5:9c:c9:b8:60:1f:fe:1c:d3:8a root@here
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|       +         |
|      o S   .    |
|     o   . * +   |
|      o + = O .  |
|       + = = +   |
|      ....Eo+    |
+-----------------+

Теперь у вас есть два файла:

  • ~/.ssh/id_rsa — приватный ключ. Никогда никому и никуда не передавайте его!
  • ~/.ssh/id_rsa.pub — публичный ключ. Спокойно распространяйте его.

В Windows можно использовать ssh-gen в подсистеме Ubuntu for Windows или в командной строке Git for Windows. Или создавать ключи графической утилитой вроде PuTTYgen.

После генерации необходимо скопировать ключ на удаленный сервер. Нужно добавить публичный ключ на сервер в файл ~/.ssh/authorized_keys. Самый простой способ — запустить на локальной машине команду для копирования ключа:

1
$ ssh-copy-id -i /home/demo/.ssh/id_rsa ivan@52.307.149.244

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

Другой способ — подключиться по паролю, открыть в редакторе файл ~/.ssh/authorized_keys и добавить в конец текст из вашего файла ~/.ssh/id_rsa.pub.

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

Один и тот же публичный ключ можно использовать для авторизации на разных серверах. Просто скопируйте его туда, куда часто заходите. Кроме обычных компьютеров, авторизация через SSH по ключу используется и на многих публичных сервисах. Например, популярный хостинг программных репозиториев GitHub заставляет использовать именно доступ по ключу для синхронизации проектов. Многие облачные сервисы так же имеют возможность авторизации по ключу.

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

Выводы:

  1. Запоминать много паролей от серверов часто неудобно и небезопасно.
  2. Асимметричное шифрование позволяет избежать ввода пароля каждый раз.
  3. Команда ssh-keygen позволяет сгенерировать пару ключей — приватный и публичный.
  4. Приватный ключ надо хранить в секрете. Если он скомпрометирован, придется создавать новую пару.
  5. Публичный ключ может удостоверять подлинность отправителя.
  6. Можно скопировать публичный ключ на сервер командой ssh-copy-id -i.
  7. Ключ может быть разослан на несколько серверов, и на них можно заходить без пароля.
  8. Ключ тоже можно защитить паролем.

Как запомнить частые подключения?

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

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

Этот файл имеет довольно простую структуру. В нем прописывается символьное имя подключения, которые вы будете использовать вместо строки подключения в команде ssh. После этого могут идти несколько опций, например — имя пользователя, адрес хоста, номер порта, адрес публичного ключа, который будет использоваться при подключении. Выглядит это примерно так:

1
2
3
4
5
6
7
8
9
10
11
12
Host targaryen
    HostName 192.168.1.10
    User daenerys
    Port 7654
    IdentityFile ~/.ssh/targaryen.key

Host tyrell
    HostName 192.168.10.20
    user oberyn

Host martell
    HostName 192.168.10.50

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

Все остальные параметры клиент подставит сам.

Выводы:

  1. Файл ~/.ssh/config используется, чтобы запомнить часто использующиеся подключения.
  2. Можно присвоить символьное имя и связать его с адресом, именем пользователя.
  3. В этом файле можно прописать использование определенного файла ключа.
  4. Файл приватного ключа в таком случае выступает идентификацией (identity).

Зачем нужна программа Tmux?

При работе в удаленной сессии есть один подводный камень. Из-за особенности функционирования процессов в Linux, когда мы выходим из сеанса (разлогиниваемся), то все запущенные команды и программы автоматически завершатся. Следующий раз нам приходится начинать работы с самого начала. И нельзя запустить какой-то долгий процесс, чтобы он выполнялся, пока мы отключились. Такое происходит и в случае непреднамеренного отключения, например, при обрыве связи.

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

Tmux (terminal multiplexor) — популярная программа, значительно
облегчающая работы в терминале на удаленной машине. Среди
возможностей данной программы:

  • разделение экрана на несколько консолей
  • создание нескольких экранов
  • сохранение выполняющихся процессов на удаленной машине после выхода из сессии
  • расшаривание ssh сессий нескольким пользователям

То есть кроме поддержания сессии tmux сильно “прокачивает” стандартную командную строчку. Это очень упрощает и ускоряет сложную работу на сервере.

Для начала работы необходимо подключиться к удаленной машине по ssh.
Конечно, можно использовать программу tmux на локальной машине для
расширения возможностей терминала, но здесь мы рассмотрим возможности
этой программы при удаленном доступе к терминалу.

При необходимости нужно установить tmux, введя команду

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

Теперь можно запустить tmux, введя одноименную команду:

На экране мы видим главное окно программы tmux:

Сочетание клавиш <Ctrl>+B позволяет вводить команды tmux. Наиболее
применимые команды:

  • ctrl-b c — запуск нового окна;
  • ctrl-b , — переименование окна;
  • ctlb-b p — переключение к предыдущему окну;
  • ctlb-b n — переключение к следующему окну;
  • ctlb-b w — вывести список окон;
  • ctlb-b % — разделение окна вертикально на две панели;
  • ctlb-b “ — разделение окна горизонтально;
  • ctlb-b d — отсоединиться от сессии;

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

Обратите внимание на нижнюю строчку. Здесь перечислены открытые окна
терминала. Можно воспринимать их как вкладки, по которым можно
перемещаться. Мы можем создать новое окно (ctrl-b c):

Теперь мы видим, что в нижней строке появилось окно 1. Звездочкой
обозначено текущее окно.

Мы можем также переименовать окно (ctrl-b ,), чтобы лучше ориентироваться. Это бывает полезно для организации рабочего пространства.

Теперь мы имеем второе окно (под номером 1, так как нумерация начинается с 0) с именем window1.

Давайте для иллюстрации запустим в первом окне команду htop:

Tmux позволяет вывести список всех созданных окон (ctrl-b w), в котором можно
перемещаться между ними. Также доступен предварительный просмотр
содержимого каждого окна:

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

Текущее окно или панель можно разбить на две панели как вертикально (ctrl-b %), так и горизонтально (ctrl-b «). Панели можно дробить неограниченное число раз:

При выполнении команды exit (или ctrl-d) панель закрывается.

Если эта панель была единственной в окне — то закроется все окно, а если окно было единственным — программа tmux завершится.

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

Для запуска сессии необходимо запустить tmux со специальным параметром, указав имя сессии:

Запустим в этой сессии какой-нибудь интерактивный процесс:

Нажав сочетание клавиш ctrl-b d, отсоединимся от сессии:

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

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

При запуске tmux можно вывести список всех открытых сессий:

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

Как мы можем наблюдать, терминал остался в том же состоянии, в котором мы его оставили, когда выходили из сессии:

Выводы:

  1. При отключении от удаленного хоста все запущенные процессы завершатся.
  2. Иногда нужно запустить процесс так, чтобы он продолжался на сервере после отключения.
  3. Для этого существуют специальные резидентные программы, например, tmux.
  4. Tmux организует сессии, которые продолжаются даже после отключения пользователя.
  5. Также вы можете продолжать работу с того места, с которого отключились.
  6. Tmux позволяет создавать несколько вкладок, разбивать окно терминала на области.
  7. Tmux сильно упрощает работу с терминалом и с удаленными серверами.
  8. Для работы tmux должен быть установлен на удаленном сервере.

Как включить и настройка SSH клиента, как применять в ОС Windows 10

Разработчик операционной системы Виндовс предусмотрел возможность соединения с отдельными серверами без привлечения дополнительных инструментов. SSH клиент является встроенным блоком, который позволяет выполнять необходимые для пользователя Windows 10 действия. Работает в десятой версии Винды, разработанной после вариации 1809. Существует несколько нюансов и рекомендаций специалистов, с которыми нужно ознакомиться заранее.

Как включить SSH клиент в Windows 10

Функционал включен в загружаемый комплекс операционки, но считается дополнительной опцией. Необходима процедура отдельного запуска программы – в режиме «По умолчанию» процесс отключен. Этапы действий юзера:

  • кликнуть по кнопке «Пуск» на Рабочем столе персонального устройства;
  • выбрать раздел «Параметры». Внимание! Раздел обязательный для операционной системы Виндовс. Найти можно другими способами – через поисковую строку, запуск дополнительного окна «Выполнить»;

screenshot_1

  • перейти к подразделу «Приложения и возможности»;

screenshot_2

  • нажать на строку «Управление дополнительными компонентами»;

screenshot_3

  • в верхней части представленного списка предустановленных возможностей выбрать пункт «Добавить компонент» (если необходимый элемент уже установлен на персональном устройстве, его наименование будет отображено в перечне);

screenshot_4

  • прокрутить страницу колесиком мышки, в нижней части выбрать строку «Open SSH Client (Beta)», затем пункт «Установить».

screenshot_5

Выполнение процедуры займет некоторое время. По завершении на мониторе ПК отобразится специальное сообщение. Операционка в процессе предложит дополнительно активировать опцию сервера OpenSSH – данный функционал необходим, если планируется полноразмерное использование софта на компе, а не просто подключение к стороннему действующему сервису.

Настройка

Существует ряд параметров, которые требуется заблаговременно настроить для корректной работы через активируемый сервер. Особенности:

  • главные пункты, необходимые для работы – название хоста, обозначение для пользователя и порта, через который был запущен SSH;

screenshot_6

  • запись данных можно осуществить любым подходящим способом (с использованием флагов -о или -р);
  • список команд для изменения параметров можно отобразить с помощью команды «man ssh_config»;
  • в момент запуска потребуется также ввести псевдоним для обновленного сервера;
  • в продолжение потребуется определить детали корректировок конфигурации.

screenshot_7

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

Как его применить

Для активации установленных корректировок используют отдельные команды. Этапы работы:

  • для стандартного подключения запускают наименование «$ ssh user@host». Внимание! В стандартном режиме необходимо сначала запустить подключение к серверу, а затем начинать вводить сочетания кодированных символов. Встроенный инструмент позволяет выполнять нужные действия без открытия удаленного блока;

screenshot_8

  • для перенаправления скрипта действий с помощью интерпретатора bash запускают комбинацию «- $ ssh user@host `bash -s` ˂ script.sh»;

screenshot_9

  • для запуска бекапа к удаленному сервису и восстановления сбившихся настроек используют символику «$ sudo dd if=/dev/sda | ssh user@host `dd of=sda.img`, затем $ ssh user@host `dd if=sda.img` | dd of=/dev/sda».

Кроме того, пользователь может выполнить запуск удаленного доступа без пароля командой «$ ssh-keygen -t rsa». Операция позволит создать ключ. В процессе потребуется ответить на предложенные ОС вопросы, поле Passphare необходимо оставить пустым.

Использование удаленного доступа с помощью встроенного инструмента позволит запустить взаимодействие между несколькими серверами. Важно заранее ознакомиться с предлагаемыми настройками – активация некорректных команд может привести к сбою работы операционки.



Информационный портал IT Техник

Вам помогло? Поделитесь с друзьями — помогите и нам!

Начиная с Windows 10 1809 и Windows Server 2019 в операционной системе имеется встроенный SSH сервер, основанный на OpenSSH. В этой статье мы покажем, как установить и настроить OpenSSH сервер в Windows 10 и подключиться к нему удаленно по защищенному SSH протоколу (ну прям как в Linux 🙂 ).

Установка сервера OpenSSH в Windows

Рассмотрим, как установить компонент OpenSSH Server в Windows 10 1903 (Windows Server 2019 все выполняется аналогично).

Пакет OpenSSH (как и RSAT) уже включен в данные версии Windows в виде Feature on Demand (FoD).

При наличии прямого Интернет-подключения вы можете установить сервер OpenSSH с помощью PowerShell

Add-WindowsCapability -Online -Name OpenSSH.Server*

Или при помощи DISM:

dism /Online /Add-Capability /CapabilityName:OpenSSH.Server

В Windows 10 этот компонент также можно установить через панель Параметры (Приложения -> Управление дополнительными компонентами -> Добавить компонент). Найдите в списке Open SSH Server и нажмите кнопку Install).

Чтобы проверить, что OpenSSH сервер установлен, выполните:
Get-WindowsCapability -Online | ? Name -like ‘OpenSSH.Ser*’

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

После уставной сервера OpenSSH в Windows вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:

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

С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на 22 порту:

netstat -na| find «:22»

Проверьте, что включено правило брандмауэра (Windows Defender Firewall), разрешающее входящие подключения к Windows по порту TCP/22.

Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

Если правило отключено (состоянии Enabled=False) или отсутствует, вы можете создать новое входящее правило командой New-NetFirewallRule:

New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

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

  • Исполняемые файлы OpenSSH Server: C:WindowsSystem32OpenSSH
  • Конфигурационный файл sshd_config (создается после первого запуска службы): C:ProgramDatassh
  • Журнал OpenSSH: C:windowssystem32OpenSSHlogssshd.log
  • Файл authorized_keys и ключи: %USERPROFILE%.ssh

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

Sshd_config: Конфигурационный файл сервера OpenSSH

Вы можете изменить настройки сервере OpenSSH в конфигурационном файле %programdata%sshsshd_config.

Например, чтобы запретить SSH подключение для определенного доменного пользователя (и всех пользователей указанного домена), добавьте в конце файле директивы:

Чтобы разрешить подключение только для определенной доменной группы:

Либо можете разрешить доступ для локальной группы:

Можно запретить вход под учетными записями с правами администратора, в этом случае для выполнения привилегированных действий в SSH сессии нужно делать runas.

Следующие директивы разрешают SSH доступ по ключам (доступ к Windows через SSH по ключам рассмотрим подробно в следующей статье) и по паролю:

Вы можете изменить порт, на котором принимает подключения OpenSSH в конфигурационном файле sshd_config в директиве Port.

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

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

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

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

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

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

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

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

New-ItemProperty -Path «HKLM:SOFTWAREOpenSSH» -Name DefaultShell -Value «C:WindowsSystem32WindowsPowerShellv1.0powershell.exe» -PropertyType String –Force

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

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

Клиент OpenSSH и сервер OpenSSH являются отдельными устанавливаемыми компонентами в Windows Server 2019 и Windows 10 1809. The OpenSSH Client and OpenSSH Server are separately installable components in Windows Server 2019 and Windows 10 1809. Пользователи с этими версиями Windows должны использовать приведенные ниже инструкции для установки и настройки OpenSSH. Users with these Windows versions should use the instructions that follow to install and configure OpenSSH.

Пользователи, получившие OpenSSH из репозитория GitHub PowerShell (https://github.com/PowerShell/OpenSSH-Portable) должны использовать инструкции из него и не должны использовать эти инструкции). Users who acquired OpenSSH from the PowerShell Github repo (https://github.com/PowerShell/OpenSSH-Portable) should use the instructions from there, and should not use these instructions.

Установка OpenSSH из пользовательского интерфейса параметров в Windows Server 2019 или Windows 10 1809 Installing OpenSSH from the Settings UI on Windows Server 2019 or Windows 10 1809

Клиент OpenSSH и сервер являются устанавливаемыми компонентами Windows 10 1809. OpenSSH client and server are installable features of Windows 10 1809.

Чтобы установить OpenSSH, запустите параметры и перейдите к разделу приложения > приложения и компоненты > Управление дополнительными функциями. To install OpenSSH, start Settings then go to Apps > Apps and Features > Manage Optional Features.

Просмотрите этот список, чтобы узнать, установлен ли клиент OpenSSH. Scan this list to see if OpenSSH client is already installed. В противном случае в верхней части страницы выберите «добавить компонент», а затем: If not, then at the top of the page select «Add a feature», then:

  • Чтобы установить клиент OpenSSH, найдите «клиент OpenSSH» и нажмите кнопку «установить». To install the OpenSSH client, locate «OpenSSH Client», then click «Install».
  • Чтобы установить сервер OpenSSH, найдите «сервер OpenSSH» и нажмите кнопку «установить». To install the OpenSSH server, locate «OpenSSH Server», then click «Install».

После завершения установки вернитесь в раздел приложения > приложения и компоненты > управления дополнительными компонентами, и вы увидите список компонентов OpenSSH. Once the installation completes, return to Apps > Apps and Features > Manage Optional Features and you should see the OpenSSH component(s) listed.

Установка сервера OpenSSH создаст и включит правило брандмауэра с именем OpenSSH-Server-in-TCP. Installing OpenSSH Server will create and enable a firewall rule named «OpenSSH-Server-In-TCP». Это разрешает входящий трафик SSH через порт 22. This allows inbound SSH traffic on port 22.

Установка OpenSSH с помощью PowerShell Installing OpenSSH with PowerShell

Чтобы установить OpenSSH с помощью PowerShell, сначала запустите PowerShell от имени администратора. To install OpenSSH using PowerShell, first launch PowerShell as an Administrator. Чтобы убедиться, что функции OpenSSH доступны для установки, выполните следующие действия. To make sure that the OpenSSH features are available for install:

Затем установите серверные и/или клиентские компоненты. Then, install the server and/or client features:

Удаление OpenSSH Uninstalling OpenSSH

Чтобы удалить OpenSSH с помощью параметров Windows, запустите параметры, а затем последовательно выберите приложения > приложения и компоненты > Управление дополнительными компонентами. To uninstall OpenSSH using the Windows Settings, start Settings then go to Apps > Apps and Features > Manage Optional Features. В списке установленных компонентов выберите компонент Клиент OpenSSH или сервер OpenSSH, а затем щелкните Удалить. In the list of installed features, select the OpenSSH Client or OpenSSH Server component, then select Uninstall.

Чтобы удалить OpenSSH с помощью PowerShell, выполните одну из следующих команд: To uninstall OpenSSH using PowerShell, use one of the following commands:

После удаления OpenSSH может потребоваться перезагрузка Windows, если служба используется в то время, когда она была удалена. A Windows restart may be required after removing OpenSSH, if the service is in use at the time it was uninstalled.

Начальная настройка SSH-сервера Initial Configuration of SSH Server

Чтобы настроить сервер OpenSSH для первоначального использования в Windows, запустите PowerShell от имени администратора, а затем выполните следующие команды, чтобы запустить службу SSHD: To configure the OpenSSH server for initial use on Windows, launch PowerShell as an administrator, then run the following commands to start the SSHD service:

Начальное использование SSH Initial use of SSH

После установки сервера OpenSSH в Windows можно быстро протестировать его с помощью PowerShell на любом устройстве Windows с установленным клиентом SSH. Once you have installed the OpenSSH Server on Windows, you can quickly test it using PowerShell from any Windows device with the SSH Client installed. В PowerShell введите следующую команду: In PowerShell type the following command:

Первое подключение к любому серверу приведет к появлению примерно следующего сообщения: The first connection to any server will result in a message similar to the following:

Ответ должен иметь значение «Да» или «нет». The answer must be either “yes” or “no”. Ответ да приведет к добавлению этого сервера в список известных узлов SSH в локальной системе. Answering Yes will add that server to the local system’s list of known ssh hosts.

На этом этапе вам будет предложено ввести пароль. You will be prompted for the password at this point. В целях безопасности пароль не будет отображаться при вводе. As a security precaution, your password will not be displayed as you type.

После подключения вы увидите командную оболочку, аналогичную следующей: Once you connect you will see a command shell prompt similar to the following:

Оболочкой по умолчанию, используемой сервером Windows OpenSSH, является Командная оболочка Windows. The default shell used by Windows OpenSSH server is the Windows command shell.

Как вы уже знаете, из предыдущей статьи, Windows 10 включает в себя встроенное программное обеспечение SSH — клиент, и сервер! В этой статье мы рассмотрим, как включить SSH-сервер.

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

В Windows 10, Microsoft, наконец, прислушалась к просьбам пользователей и добавила поддержку протокола OpenSSH в версии обновления Fall Creators.

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

Предоставленный SSH-сервер похож на приложение Linux. На первый взгляд, он поддерживает те же функции, что и его аналог * NIX. Это консольное приложение, но оно работает как служба Windows.

Как включить сервер OpenSSH в Windows 10.

  1. Откройте приложение «Параметры» и перейдите в «Приложения» → «Приложения и возможности».
  1. Справа нажмите «Управление дополнительными компонентами».

  1. На следующей странице нажмите кнопку «Добавить компонент».

  1. В списке компонентов выберите OpenSSH Server и нажмите кнопку «Установить», это установит программное обеспечение OpenSSH Server в Windows 10

  1. Перезагрузите Windows 10.

Также вы можете установить клиент SSH с помощью PowerShell.

Откройте PowerShell от имени Администратора и выполните следующую команду и перезагрузите систему:

Файлы OpenSSH Server находятся в папке c:windowssystem32Openssh. Помимо клиентских приложений SSH, папка содержит следующие серверные инструменты:

  • SFTP-server.exe
  • SSH-agent.exe
  • SSH-keygen.exe
  • sshd.exe
  • конфигурационный файл «sshd_config».

Сервер SSH настроен для работы в качестве службы.

На момент написания этой статьи он не запускается автоматически. Вам нужно включить его вручную.

Как запустить сервер OpenSSH в Windows 10.

  1. Откройте Службы, (нажмите клавиши Win + R и введите services.msc в поле «Выполнить») и запустите службу sshd. дважды кликните на запись sshd, чтобы открыть ее свойства.

  1. На вкладке «Вход в систему» см. Учетную запись пользователя, которая используется сервером sshd. В моем случае это NT Service sshd

  1. Теперь откройте командную строку или PowerShell от имени администратора .

С помощью этой команды перейдите в каталог Openssh

  1. Здесь запустите команду для создания ключей безопасности для сервера sshd:

Сервер Sshd сгенерирует ключи

  1. Теперь в командной строке введите: explorer.exe, чтобы запустить Проводник в папке OpenSSH.

  1. Кликните правой кнопкой мыши файл ssh_host_ed25519_key и измените владельца файла на пользователя службы sshd, например NT Servicesshd.

  1. Нажмите кнопку «Добавить» и добавьте разрешение «Чтение» для пользователя «NT Servicesshd».
  2. Теперь удалите все другие разрешения, чтобы получить что-то вроде этого:

  1. Нажмите «Применить» и подтвердите операцию.
  1. Наконец, откройте службы (нажмите клавиши Win + R и введите services.msc в поле «Выполнить») и запустите службу sshd. Она должна запустится:

Служба Sshd работает.

  1. Теперь необходимо разрешить использование SSH-порта в брандмауэре Windows. По умолчанию сервер использует порт 22. Запустите эту команду в командной строке или PowerShell от имени администратора:

  1. Наконец, установите пароль для своей учетной записи пользователя, если у вас его нет.

Теперь вы можете попробовать его в действии.

Подключение к SSH-серверу в Windows 10.

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

В общем случае синтаксис для клиента консоли OpenSSH выглядит следующим образом:

В моем случае команда выглядит следующим образом:

Где alex_ — мое имя пользователя Windows, а 192.168.1.126 — это IP-адрес моего ПК с Windows 10. Я подключусь к нему с другого компьютера, Windows 10.

Сервер запускает классические консольные команды Windows, например: more, type, ver, copy.

Но я не могу запустить FAR Manager. Он выглядит совсем сломанным:

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

Встроенный SSH-сервер определенно интересен. Он позволяет управлять компьютером сWindows 10, без установки сторонних инструментов, как rdesktop и др..

Начиная с этой версии, встроенный SSH-сервер в Windows 10 находится на стадии BETA, поэтому в будущем он должен стать, более интересным и полезным.

Понравилась статья? Поделить с друзьями:
  • Ssh сервер для windows server 2008 r2
  • Ssh сервер для windows 10 скачать
  • Ssh сервер windows server 2012 r2
  • Ssh подключение к удаленному рабочему столу windows
  • Ssh передать пароль в командной строке windows