Secure Shell (SSH)

Secure Shell (SSH) permite administrar y configurar de forma remota el dispositivo Windows IoT Core.

Uso del cliente openSSH de Windows 10

Importante

El Windows cliente OpenSSH requiere que el sistema operativo del host de cliente SSH esté Windows 10 versión 1803(17134). Además, el dispositivo Windows 10 IoT Core debe ejecutar RS5 Windows Insider Preview versión 17723 o superior.

El cliente OpenSSH se agregó a Windows 10 en 1803 (compilación 17134) como una característica opcional. Para instalar el cliente, puede buscar Administrar características opcionales en Windows 10 configuración. Si el cliente OpenSSH no aparece en la lista de características instaladas, elija Agregar una característica.

Add a feature

A continuación, seleccione OpenSSH Client en la lista y haga clic en Instalar.

OpenSSH Client Install

Para iniciar sesión con un nombre de usuario y una contraseña, use el siguiente comando:

ssh administrator@host

Donde host es la dirección IP del dispositivo Windows IoT Core o el nombre del dispositivo.

La primera vez que conecte verá un mensaje similar al siguiente:

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

Escriba y presione Entrar.

Si necesita iniciar sesión como DefaultAccount en lugar de como administrador, deberá generar una clave y usar la clave para iniciar sesión. Desde el escritorio desde el que quiere conectarse al dispositivo IoT, abra una ventana de PowerShell y cambie a la carpeta de datos personales (por ejemplo, cd ~).

cd ~
ssh-keygen -t rsa -f id_rsa

Registre la clave con ssh-agent (opcional, para la experiencia de inicio de sesión único). Tenga en cuenta que ssh-add debe realizarse desde una carpeta que sea ACL para usted como el usuario que ha iniciado sesión (Builtin\Administrators y el usuario NT_AUTHORITY\System también están correctos). De forma predeterminada, cd ~ de PowerShell debe ser suficiente como se muestra a continuación.

cd ~
net start ssh-agent
ssh-add id_rsa

Sugerencia

Si recibe un mensaje que indica que el servicio ssh-agent está deshabilitado, puede habilitarlo con sc.exe config ssh-agent start=auto

Para habilitar el inicio de sesión único, anexe la clave pública al archivo de Windows dispositivo IoT Core authorized_keys. O bien, si solo tiene una clave, copie el archivo de clave pública en el archivo de authorized_keys remoto.

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

Si la clave no está registrada con ssh-agent, debe especificarse en la línea de comandos para iniciar sesión:

ssh -i .\id_rsa DefaultAccount@host

Si la clave privada está registrada con ssh-agent, solo tiene que especificar DefaultAccount@host:

ssh DefaultAccount@host

La primera vez que conecte verá un mensaje similar al siguiente:

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

Escriba y presione Entrar.

Ahora debería estar conectado como DefaultAccount.

Para usar el inicio de sesión único con la cuenta de administrador, anexe la clave pública a c:\data\ProgramData\ssh\administrators_authorized_keys en el dispositivo ioT Core de Windows.

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

También deberá establecer la ACL para administrators_authorized_keys para que coincida con la ACL de ssh_host_dsa_key en el mismo directorio.

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

Para establecer la ACL mediante PowerShell

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

Nota

Si ve un mensaje REMOTE HOST IDENTIFICATION CHANGED después de realizar cambios en el dispositivo Windows 10 IoT Core, edite C:\Users<username.ssh>\known_hosts y quite el host que ha cambiado.

Consulte también: Win32-OpenSSH

Usar PuTTY

Descarga de un cliente SSH

Para conectarse al dispositivo mediante SSH, primero deberá descargar un cliente SSH, como PuTTY.

Conexión al dispositivo

  • Para conectarse al dispositivo, primero debe obtener la dirección IP del dispositivo. Después de arrancar el dispositivo Windows IoT Core, se mostrará una dirección IP en la pantalla conectada al dispositivo:

    DefaultApp on Windows IoT Core

  • Ahora inicie PuTTY y escriba la dirección IP en el Host Name cuadro de texto y asegúrese de que el SSH botón de radio está seleccionado. A continuación, haga clic en Open.

    PuTTY Configuration

  • Si se conecta al dispositivo por primera vez desde el equipo, es posible que vea la siguiente alerta de seguridad. Solo tienes que hacer clic Yes para continuar.

    PuTTY Security Alert

  • Si la conexión se realizó correctamente, debería ver login as: en la pantalla, en la que se le pedirá que inicie sesión.
    Escriba Administrator y presione Entrar. A continuación, escriba la contraseña p@ssw0rd predeterminada como contraseña y presione Entrar.

    PuTTY Login

    Si pudo iniciar sesión correctamente, debería ver algo parecido a esto:

    PuTTY Console

Actualización de la contraseña de la cuenta

Se recomienda encarecidamente actualizar la contraseña predeterminada para la cuenta de administrador.

Para ello, escriba el siguiente comando en la consola de PuTTY, reemplazando por [new password] una contraseña segura:

    net user Administrator [new password]

Configuración del dispositivo ioT Core de Windows

  • Para poder implementar aplicaciones desde Visual Studio 2017, debe asegurarse de que el Visual Studio Remote Debugger se ejecuta en el dispositivo Windows IoT Core. El depurador remoto debe iniciarse automáticamente en el tiempo de arranque de la máquina. Para comprobarlo, use el comando tlist para enumerar todos los procesos en ejecución de PowerShell. Debe haber dos instancias de msvsmon.exe en ejecución en el dispositivo.

  • Es posible que el Visual Studio Remote Debugger agote el tiempo de espera después de largos períodos de inactividad. Si Visual Studio no se puede conectar al dispositivo Windows IoT Core, intente reiniciar el dispositivo.

  • Si lo desea, también puede cambiar el nombre del dispositivo. Para cambiar el "nombre del equipo", use la setcomputername utilidad :

        setcomputername <new-name>

Tendrá que reiniciar el dispositivo para que el cambio surta efecto. Puede usar el comando de la shutdown siguiente manera:

        shutdown /r /t 0

Utilidades usadas habitualmente

Consulte la página Utils de la línea de comandos para obtener una lista de comandos y utilidades que puede usar con SSH.