Поделиться через


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

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

Использование клиента 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 в списке и нажмите кнопку "Установить".

OpenSSH Client Install

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

ssh administrator@host

Где узел является IP-адресом устройства Windows IoT Core или именем устройства.

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

The authenticity of host 'hostname (192.168.0.12)' can't be established.
ECDSA key fingerprint is SHA256:RahZpBFpecRiPmw8NGSa+7VKs8mgqQi/j2i1Qr9lUNU.
Are you sure you want to continue connecting (yes/no)?

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

Если вам нужно войти в качестве DefaultAccount, а не от имени администратора, необходимо создать ключ и использовать его для входа. На рабочем столе, с которым вы планируете подключиться к устройству Интернета вещей, откройте окно PowerShell и перейдите в папку персональных данных (например, cd ~)

cd ~
ssh-keygen -t rsa -f id_rsa

Зарегистрируйте ключ в SSH-agent (необязательно для единого входа). Обратите внимание, что ssh-add необходимо выполнить из папки, которая является ACL для вас в качестве вошедшего пользователя (Builtin\Administrators и NT_AUTHORITY\System пользователь также в порядке). По умолчанию cd ~ из PowerShell должно быть достаточно, как показано ниже.

cd ~
net start ssh-agent
ssh-add id_rsa

Совет

Если появится сообщение о том, что служба SSH-agent отключена, ее можно включить с помощьюsc.exe config ssh-agent start=auto

Чтобы включить единый вход, добавьте открытый ключ в файл Windows устройства IoT Core authorized_keys. Или если у вас есть только один ключ, то файл открытого ключа копируется в удаленный файл authorized_keys .

net use X: \\host\c$ /user:host\administrator
if not exist x:\data\users\defaultaccount\.ssh md x:\data\users\defaultaccount\.ssh
copy .\id_rsa.pub x:\data\users\defaultaccount\.ssh\authorized_keys

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

ssh -i .\id_rsa DefaultAccount@host

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

ssh DefaultAccount@host

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

The authenticity of host 'hostname (192.168.0.12)' can't be established.
ECDSA key fingerprint is SHA256:RahZpBFpecRiPmw8NGSa+7VKs8mgqQi/j2i1Qr9lUNU.
Are you sure you want to continue connecting (yes/no)?

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

Теперь вы должны быть подключены как DefaultAccount

Чтобы использовать единый вход с учетной записью администратора, добавьте открытый ключ в каталог c:\data\ProgramData\ssh\administrators_authorized_keys на устройстве Windows IoT Core.

net use X: \\host\c$ /user:host\administrator
copy .\id_rsa.pub x:\data\ProgramData\ssh\administrators_authorized_keys
icacls x:\data\ProgramData\ssh\administrators_authorized_keys /remove "NT AUTHORITY\Authenticated Users"
icaclsx:\data\ProgramData\ssh\administrators_authorized_keys /inheritance:r

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

icacls x:\data\ProgramData\ssh\administrators_authorized_keys /remove "NT AUTHORITY\Authenticated Users"
icacls x:\data\ProgramData\ssh\administrators_authorized_keys /inheritance:r

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

get-acl x:\data\ProgramData\ssh\ssh_host_dsa_key | set-acl x:\data\ProgramData\ssh\administrators_authorized_keys

Примечание

Если после внесения изменений в устройство Windows 10 IoT Базовая отображается сообщение ОБ ИЗМЕНЕНИИ ИДЕНТИФИКАТОРА УДАЛЕННОГО УЗЛА, измените C:\Users<username.ssh>\known_hosts и удалите измененный узел.

См. также: Win32-OpenSSH

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

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

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

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

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

    DefaultApp on Windows IoT Core

  • Теперь запустите PuTTY и введите IP-адрес в текстовом Host Name поле и убедитесь, что SSH переключатель установлен. Затем нажмите кнопку Open.

    PuTTY Configuration

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

    PuTTY Security Alert

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

    PuTTY Login

    Если вы успешно выполнили вход, вы увидите примерно следующее:

    PuTTY Console

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

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

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

    net user Administrator [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 программу:

        setcomputername <new-name>

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

        shutdown /r /t 0

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

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