SSH(보안 셸)

SSH(Secure Shell)를 사용하면 Windows IoT Core 디바이스를 원격으로 관리하고 구성할 수 있습니다.

Windows 10 OpenSSH 클라이언트 사용

중요

Windows OpenSSH 클라이언트를 사용하려면 SSH 클라이언트 호스트 OS가 Windows 10 버전 1803(17134)입니다. 또한 Windows 10 IoT Core 디바이스에서 RS5 Windows Insider Preview 릴리스 17723 이상을 실행해야 합니다.

OpenSSH 클라이언트는 선택적 기능으로 1803년(빌드 17134)에 Windows 10 추가되었습니다. 클라이언트를 설치하려면 Windows 10 설정에서 선택적 기능 관리를 검색할 수 있습니다. OpenSSH 클라이언트가 설치된 기능 목록에 나열되지 않은 경우 기능 추가를 선택합니다.

Add a feature

그런 다음 목록에서 OpenSSH 클라이언트 를 선택하고 설치를 클릭합니다.

OpenSSH Client Install

사용자 이름 및 암호로 로그인하려면 다음 명령을 사용합니다.

ssh administrator@host

여기서 호스트는 Windows IoT Core 디바이스의 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)?

예를 입력하고 Enter 키를 누릅니.

관리자가 아닌 DefaultAccount로 로그인해야 하는 경우 키를 생성하고 키를 사용하여 로그인해야 합니다. IoT 디바이스에 연결하려는 데스크톱에서 PowerShell 창을 열고 개인 데이터 폴더(예: cd ~)로 변경합니다.

cd ~
ssh-keygen -t rsa -f id_rsa

ssh-agent를 사용하여 키를 등록합니다(Single Sign-On 환경의 경우 선택 사항). 로그인한 사용자로 ACL인 폴더에서 ssh-add를 수행해야 합니다(Builtin\Administrators 및 NT_AUTHORITY\System 사용자도 확인됨). 기본적으로 PowerShell의 cd ~ 는 아래와 같이 충분해야 합니다.

cd ~
net start ssh-agent
ssh-add id_rsa

ssh-agent 서비스가 비활성화되었다는 메시지가 표시되면 sc.exe 구성 ssh-agent start=auto를 사용하여 사용하도록 설정할 수 있습니다.

Single Sign을 사용하도록 설정하려면 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)?

예를 입력하고 Enter 키를 누릅니.

이제 DefaultAccount로 연결되어야 합니다.

관리자 계정으로 Single Sign-On을 사용하려면 Windows IoT Core 디바이스의 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

또한 동일한 디렉터리에 있는 ssh_host_dsa_key ACL과 일치하도록 administrators_authorized_keys 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 Core 디바이스를 변경한 후 REMOTE HOST IDENTIFICATION CHANGED 메시지가 표시되면 C:\Users<username.ssh>\known_hosts 편집하고 변경된 호스트를 제거합니다.

참고 항목: Win32-OpenSSH

PuTTY 사용

SSH 클라이언트 다운로드

SSH를 사용하여 디바이스에 연결하려면 먼저 PuTTY와 같은 SSH 클라이언트를 다운로드해야 합니다.

디바이스에 연결

  • 디바이스에 연결하려면 먼저 디바이스의 IP 주소를 가져와야 합니다. Windows IoT Core 디바이스를 부팅하면 디바이스에 연결된 화면에 IP 주소가 표시됩니다.

    DefaultApp on Windows IoT Core

  • 이제 PuTTY를 시작하고 텍스트 상자에 IP 주소를 Host Name 입력하고 라디오 단추가 SSH 선택되어 있는지 확인합니다. 그런 다음 을 클릭합니다 Open.

    PuTTY Configuration

  • 컴퓨터에서 처음으로 디바이스에 연결하는 경우 다음과 같은 보안 경고가 표시 될 수 있습니다. 계속하려면 클릭 Yes 하기만 하면 됩니다.

    PuTTY Security Alert

  • 연결에 성공하면 화면에 로그인하라는 메시지가 표시됩니다 login as: .
    Enter Administrator 키를 누릅니다. 그런 다음 기본 암호를 암호 p@ssw0rd 로 입력하고 Enter 키를 누릅니다.

    PuTTY Login

    성공적으로 로그인할 수 있는 경우 다음과 같이 표시됩니다.

    PuTTY Console

계정 암호 업데이트

관리자 계정의 기본 암호를 업데이트하는 것이 좋습니다 .

이렇게 하려면 PuTTY 콘솔에서 다음 명령을 입력하고 강력한 암호로 바 [new password] 꿉다.

    net user Administrator [new password]

Windows IoT Core 디바이스 구성

  • Visual Studio 2017에서 애플리케이션을 배포하려면 Windows IoT Core 디바이스에서 Visual Studio 원격 디버거 실행 중인지 확인해야 합니다. 원격 디버거는 머신 부팅 시 자동으로 시작됩니다. 다시 확인하려면 tlist 명령을 사용하여 PowerShell에서 실행 중인 모든 프로세스를 나열합니다. 디바이스에서 실행되는 두 개의 msvsmon.exe 인스턴스가 있어야 합니다.

  • Visual Studio 원격 디버거 장기간 비활성 상태이면 시간이 초과할 수 있습니다. Visual Studio Windows IoT Core 디바이스에 연결할 수 없는 경우 디바이스를 다시 부팅해 보세요.

  • 원하는 경우 디바이스의 이름을 바꿀 수도 있습니다. '컴퓨터 이름'을 변경하려면 유틸리티를 setcomputername 사용합니다.

        setcomputername <new-name>

변경 내용이 적용되려면 디바이스를 다시 부팅해야 합니다. 다음과 같이 명령을 사용할 shutdown 수 있습니다.

        shutdown /r /t 0

일반적으로 사용되는 유틸리티

SSH에서 사용할 수 있는 명령 및 유틸리티 목록은 명령줄 유틸리티 페이지를 참조하세요.