Windows и SSH. Продолжение

Недавно решил поковыряться в 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

    +9
    Такой SSH нам не нужен!
      0
      Да, такой какой есть и правда нет, а вот от подключения в PowerShell я бы не отказался. После этого уже точно все можно будет заскриптовать =)
      +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.
        +3
        whoami работает в cmd, если чо.
          +1
          whoami идет с Windows XP, после какого-то сервис-пака
          0
          Когда винда получит поддержку UNIX-сокетов убью все виртуалки с линухой.
            0
            Это которые в местной редакции System.IO.Pipes?
              0
              А какой аспект UNIX-сокетов вам нужен в винде? Там же есть Pipes.
              Или вам нужно передавать fd между процессами? Тогда есть DuplicateHandle.
                0
                Я про сеть в целом. На данный момент не реализованы некоторые протоколы (вроде ICMP) в баше [https://github.com/Microsoft/BashOnWindows/issues/18#issuecomment-207663429]
                  0
                  Так это не Unix Socket (AF_UNIX), это самые обычные сетевые сокеты (AF_INET).
                    0
                    С _UNIX тоже самое https://github.com/Microsoft/BashOnWindows/issues/134#issuecomment-208443290
              +1
              Буквально позавчера подымал OpenSSH сервер на Windows Nano Server. Это специальная версия, заточенная ребятами из MS. В целом работает разумно, пусть и не отлично — нет цветов, стрелок, Backspace и некоторых наворотов, но без проблем работает SFTP, а заодно можно вызывать powershell команды, т.е. 'powershell Get-Process' выполняется, нет только command prompt.
              Весьма хорошее начинание, пусть и пилить и пилить еще надо.
                0
                У меня к сожалению только отрицательный опыт работы с данным ssh сервером — очень много ошибок, очень мало функционала, на issue на github странице проекта отвечают очень вяло. Использовал в связке с Jenkins. В результате пришлось вернуться на cygwin. Возможно, через пару лет можно будет вернуться к данному продукту

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

                Самое читаемое