安全殼層 (SSH)

安全殼層 (SSH) 可讓您從遠端系統管理和設定 Windows IoT 核心版裝置

使用 Windows 10 OpenSSH 用戶端

重要

Windows OpenSSH 用戶端要求您的 SSH 用戶端主機作業系統Windows 10版本 1803 (17134) 。 此外,Windows 10 IoT 核心版裝置必須執行 RS5 Windows Insider Preview 17723 版或更新版本。

OpenSSH 用戶端已新增至 1803 (組建 17134) 作為選擇性功能中的Windows 10。 若要安裝用戶端,您可以在Windows 10設定中搜尋[管理選擇性功能]。 如果 OpenSSH 用戶端未列在已安裝的功能清單中,請選擇 [新增功能]。

Add a feature

接下來,選取清單中的 OpenSSH Client ,然後按一下 [ 安裝]。

OpenSSH Client Install

若要使用使用者名稱和密碼登入,請使用下列命令:

ssh administrator@host

其中主機是 Windows IoT 核心版裝置的 IP 位址或裝置名稱。

第一次連線時,您會看到如下所示的訊息:

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)?

輸入 yes ,然後按 Enter

如果您需要以 DefaultAccount 而非系統管理員身分登入,您必須產生金鑰並使用金鑰登入。 從您想要連線到 IoT 裝置的桌面上,開啟 PowerShell 視窗並變更為個人資料資料夾, (例如 cd ~)

cd ~
ssh-keygen -t rsa -f id_rsa

使用 ssh-agent (選擇性註冊金鑰,以進行單一登入體驗) 。 請注意,ssh-add 必須從 ACL'd 的資料夾執行,因為已登入的使用者 (Builtin\Administrators,而 NT_AUTHORITY\System 使用者也沒關係) 。 根據預設,來自 PowerShell 的 cd ~ 應該已足夠,如下所示。

cd ~
net start ssh-agent
ssh-add id_rsa

提示

如果您收到 ssh-agent 服務已停用的訊息,您可以使用sc.exe設定 ssh-agent start=auto加以啟用

若要啟用單一登入,請將公開金鑰附加至 Windows IoT 核心版裝置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)?

輸入 yes ,然後按 Enter

您現在應該已連線為 DefaultAccount

若要搭配系統管理員帳戶使用單一登入,請將公開金鑰附加至 Windows IoT 核心版裝置上的 c:\data\ProgramData\ssh\administrators_authorized_keys。

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

您也需要為 administrators_authorized_keys 設定 ACL,以符合相同目錄中ssh_host_dsa_key的 ACL。

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

使用 PowerShell 設定 ACL

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

注意

如果您在變更Windows 10 IoT 核心版裝置之後看到REMOTE HOST IDENTIFICATION CHANGED訊息,請編輯 C:\Users < username.ssh > \known_hosts,並移除已變更的主機。

另請參閱: Win32-OpenSSH

使用 PuTTY

下載 SSH 用戶端

若要使用 SSH 連線到您的裝置,您必須先下載 SSH 用戶端,例如 PuTTY

連接到您的裝置

  • 若要連線到您的裝置,您必須先取得裝置的 IP 位址。 開機Windows IoT 核心版裝置之後,裝置的畫面上會顯示 IP 位址:

    DefaultApp on Windows IoT Core

  • 現在啟動 PuTTY,然後在文字方塊中輸入 IP 位址 Host Name ,並確定 SSH 已選取選項按鈕。 然後按一下 Open

    PuTTY Configuration

  • 如果您是第一次從電腦連線到裝置,您可能會看到下列安全性警示。 只要按一下 Yes 即可繼續。

    PuTTY Security Alert

  • 如果連線成功,您應該會在畫面上看到 login as: ,提示您登入。
    輸入 Administrator ,然後按 Enter。 然後輸入預設密碼作為密碼 p@ssw0rd ,然後按 Enter。

    PuTTY Login

    如果您能夠成功登入,您應該會看到如下的內容:

    PuTTY Console

更新帳戶密碼

強烈建議您更新系統管理員帳戶的預設密碼。

若要這樣做,請在 PuTTY 主控台中輸入下列命令,並將 [new password] 取代為強式密碼:

    net user Administrator [new password]

設定您的 Windows IoT 核心版裝置

  • 若要能夠從 Visual Studio 2017 部署應用程式,您必須確定Visual Studio 遠端偵錯工具已在 Windows IoT 核心版裝置上執行。 遠端偵錯程式應該會在機器開機時自動啟動。 若要再次檢查,請使用 tlist 命令,從 PowerShell 列出所有執行中的進程。 在裝置上執行msvsmon.exe應該有兩個實例。

  • Visual Studio 遠端偵錯工具在長時間閒置後可能會逾時。 如果Visual Studio無法連線到您的 Windows IoT 核心版裝置,請嘗試重新開機裝置。

  • 如有需要,您也可以重新命名裝置。 若要變更 「電腦名稱稱」,請使用 setcomputername 公用程式:

        setcomputername <new-name>

您必須重新開機裝置,變更才會生效。 您可以使用 shutdown 命令,如下所示:

        shutdown /r /t 0

常用的公用程式

如需可與 SSH 搭配使用的命令和公用程式清單,請參閱 命令列公用 程式頁面。