Недавно решил поковыряться в Insider Preview Windows 10 (10.0.14393.3) на предмет того, как там работает Bash подсистема и вспомнил публикацию kekekeks «Поддержка SSH в Windows силами Microsoft». И из чистого любопытства вбил в консоли Bash «ssh localhost» и слегка удивился, что он предложил сохранить ключ.



Сначала подумал, что подсистема Linux таки вместе с собой привнесла что-то новое, но нет — компоненты появились в последнем обновлении ОС:



Сейчас для того, чтобы подключиться по SSH к компьютеру Windows 10 потребуется через «Управление компьютером»«Группы пользователей» добавить пользователя в группу «SSH Users». Поддерживаются только пользователи на английском языке (по крайней мере у меня не получилось залогиниться с пользователем на русском).

При подключении открывается стандартный интерфейс командной строки Windows (очень странно, что не PowerShell, он был бы куда лучше).



Из пока что замеченных багов


1. Не показывается вывод whoami и некоторых других;
2. Выполнение команды не прерывается по CTRL+C;
3. Не работает PowerShell.

* Работу SCP не проверял. Если кому не сложно… И вдруг найдете, где и как ключи хранятся.

Если найдете что-то еще — сообщайте, дополню.
Поделиться с друзьями
-->

Комментарии (13)


  1. chupasaurus
    27.07.2016 12:43
    +9

    Такой SSH нам не нужен!


    1. sayrys
      27.07.2016 22:27

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


  1. Cheater
    27.07.2016 13:18
    +4

    Эмм…

    1) «The authenticity of host 'localhost' can't be established» — это совершенно нормально. С точки зрения known_hosts, локалхост ничем не отличается от любого другого хоста — он точно так же по умолчанию недоверенный. Под линуксом вы получите то же самое сообщение при попытке подключиться по ssh на localhost. Кроме того, никто не гарантирует, что порт SSH не форвардится с локалхоста ещё куда-то.

    2) ssh под рутом не рекомендую практиковать — несекьюрно… В sshd в юниксах даже есть специальная настройка — не позволять ssh-иться суперпользователю. Заходить лучше простым и только простым юзером.

    3) «И вдруг найдете, где и как ключи хранятся» — по аналогии с линуксом предположу, что %HOME%/.ssh/known_hosts.

    4) «Не показывается вывод whoami и некоторых других, (...)» — так никто и не обещал юниксовые утилиты вроде? Вы совершенно определённо находитесь в cmd, а не в баше. SSH — лишь способ связи и SSH != bash. Если вам нужен bash с whoami и всем остальным под windows, то можете после залогинивания по ssh запустить, например, MinGW.


    1. 4c74356b41
      27.07.2016 13:24
      +3

      whoami работает в cmd, если чо.


    1. krasaval
      27.07.2016 14:19
      +1

      whoami идет с Windows XP, после какого-то сервис-пака


  1. akamajoris
    27.07.2016 14:29

    Когда винда получит поддержку UNIX-сокетов убью все виртуалки с линухой.


    1. gotch
      27.07.2016 17:22

      Это которые в местной редакции System.IO.Pipes?


    1. lorc
      27.07.2016 17:22

      А какой аспект UNIX-сокетов вам нужен в винде? Там же есть Pipes.
      Или вам нужно передавать fd между процессами? Тогда есть DuplicateHandle.


      1. akamajoris
        27.07.2016 17:41

        Я про сеть в целом. На данный момент не реализованы некоторые протоколы (вроде ICMP) в баше [https://github.com/Microsoft/BashOnWindows/issues/18#issuecomment-207663429]


        1. lorc
          27.07.2016 18:04

          Так это не Unix Socket (AF_UNIX), это самые обычные сетевые сокеты (AF_INET).


          1. akamajoris
            27.07.2016 18:39

            С _UNIX тоже самое https://github.com/Microsoft/BashOnWindows/issues/134#issuecomment-208443290


  1. Nomad1
    27.07.2016 15:14
    +1

    Буквально позавчера подымал OpenSSH сервер на Windows Nano Server. Это специальная версия, заточенная ребятами из MS. В целом работает разумно, пусть и не отлично — нет цветов, стрелок, Backspace и некоторых наворотов, но без проблем работает SFTP, а заодно можно вызывать powershell команды, т.е. 'powershell Get-Process' выполняется, нет только command prompt.
    Весьма хорошее начинание, пусть и пилить и пилить еще надо.


  1. ALexhha
    28.07.2016 15:12

    У меня к сожалению только отрицательный опыт работы с данным ssh сервером — очень много ошибок, очень мало функционала, на issue на github странице проекта отвечают очень вяло. Использовал в связке с Jenkins. В результате пришлось вернуться на cygwin. Возможно, через пару лет можно будет вернуться к данному продукту