AWS/SSH

[AWS SSH] aws windows instance에 ssh연결

DungDung.dev 2023. 12. 7. 16:40

 로컬 windows wsl에서 aws windows instance로 연결하는 과정입니다. ssh가 간단한 인증과 연결을 도와주는 만큼 목적은 개발 pc에 편하게 접속하기 위한 것과 최종적으로는 ssh명령어를 통한 자동화 배포 스크립트 구성에 있습니다. 

 

ms 문서를 토대로 따라가봅시다.

(https://learn.microsoft.com/ko-kr/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell#install-openssh-for-windows)

 

  • 로컬 또는 서버에서 관리자 권한으로 PowerShell을 실행합니다.

 

  • OpenSSH가 설치되어 있는지 확인합니다. 
# OpenSSH 설치 확인
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# 존재할 경우의 출력
Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : Installed

#존재하지 않을 경우의 출력 
Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

 

  • State : NotPresent일 경우 OpenSSH를 설치합니다. (로컬에서는 Client만 설치하고, 서버에서는 Server만 설치해도 됩니다.)
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

 

두 명령 모두 아래 출력을 반환합니다.

Path          :
Online        : True
RestartNeeded : False

 

 

  • 서버에서 아래 명령어를 실행하여 sshd service를 시작합니다.
# sshd 서비스 시작
Start-Service sshd

# 서비스 시작 유형을 자동으로 변경해줍니다.
Set-Service -Name sshd -StartupType 'Automatic'

# 방화벽 규칙을 확인합니다. 설정에 의해 자동으로 생성이 되었어야 합니다.
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}

 

 

  • 로컬에서 "ssh username@instance_id" 를 입력하여 ssh 연결을 확인합니다. (username은 서버에서 사용하는 username 으로 변경해주세요.)

 

  • 정상 연결이 되었다면 아래 메시지가 출력됩니다. yes를 입력하고 엔터를 누릅니다.
The authenticity of host 'servername (10.00.00.001)' can't be established.
ECDSA key fingerprint is SHA256:(<a large string>).
Are you sure you want to continue connecting (yes/no)?

 

  • 비밀번호를 입력하라는 메시지가 출력되면 비밀번호를 입력해줍니다. 

 

  • 연결이 완료되면 Windows 명령 셸 프롬프트가 표시됩니다. 
username@SERVERNAME C:\Users\useraname>

 + "powershell"을 입력하여 입력된 명령어를 ps로 실행하게 변경해줍니다.

username@SERVERNAME C:\Users\username>powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows

PS C:\Users\username>

 

 

이제 로컬에서 aws windows instance로 ssh 연결을 할 수 있게되었습니다. 하지만 비밀번호를 직접 입력하는 등 아직 보안적으로 불안한 부분이 많음으로 다음 게시글에서는 키 기반 인증으로 변경하는 과정을 담겠습니다. 

'AWS > SSH' 카테고리의 다른 글

[AWS SSH] aws windows instance에 키 기반 인증 ssh연결 설정  (0) 2023.12.08