PowerShell에서 SSH를 사용하기 위한 완벽한 가이드: 구성 및 실제 예제

마지막 업데이트 : 07/05/2025
저자 : 이삭
  • PowerShell을 원격 시스템을 연결하고 관리할 수 있습니다. SSH 본래적으로 Windows 10/11 및 최신 버전.
  • OpenSSH를 클라이언트 및 서버로 설치하고 구성하는 것은 간단하며, 보안 요구 사항에 따라 암호 또는 공개 키 인증을 사용할 수 있습니다.
  • PowerShell SSH의 고급 기능에는 자동화, 세션 관리, 사용자 정의가 포함되어 있어 다양한 환경에서 원격 관리가 쉬워집니다.

PowerShell에서 SSH 연결

PowerShell에서 직접 SSH를 통해 연결 더 이상 관리 전문가에게만 맡겨진 작업이 아닙니다. 오늘날 모든 Windows 사용자는 서버에 액세스하고, 관리하고, 심지어 작업을 자동화할 수 있습니다. 단말기 Windows 10 이상에서 기본적으로 통합된 SSH를 사용할 수 있습니다. 그렇게 되기 위한 길은 그 어느 때보다 간단할 뿐만 아니라 안정성과 보안 측면에서도 개선되어 기존 외부 클라이언트에 비해 강력한 대안이 되었습니다.

원격 시스템을 관리하거나 파일을 복사하고 검토해야 했던 적이 있다면 로그 o 달리기 명령 서버에서 Linux 이 자세한 가이드는 데스크톱을 벗어나지 않고도 Windows에 접속할 수 있는 참고 자료입니다. 다양한 플랫폼에서 OpenSSH를 사용하기 위한 요구 사항, 설치 및 구성부터 기본 명령과 고급 PowerShell SSH 기능에 대한 실제 예제까지 모든 것을 배우고 원격 관리를 최대한 활용하세요.

SSH란 무엇이고 PowerShell에서 사용하는 이유는 무엇입니까?

SSH(Secure Shell)는 터미널을 사용하여 원격 시스템에 접근하고 관리할 수 있는 안전한 통신 프로토콜입니다.. Telnet 등의 다른 프로토콜에 비해 가장 큰 장점은 엔드투엔드 암호화로, 사용자 이름과 비밀번호를 포함한 모든 정보가 완벽하게 보호된 상태로 전송된다는 점입니다.

반면 PowerShell은 고급 Windows 명령 콘솔입니다.사용자 및 관리 작업에 모두 사용됩니다. 수년 동안 Windows에는 기본 SSH 클라이언트가 포함되어 PowerShell에서 바로 SSH의 기능을 최대한 활용할 수 있게 되었으며, 이를 통해 Linux, Windows 및 기타 원격 장치를 쉽고 안전하게 관리할 수 있게 되었습니다.

PowerShell에서 SSH를 사용하기 위한 필수 구성 요소

SSH PowerShell 요구 사항

PowerShell에서 원격 시스템을 관리하기 전에 컴퓨터와 대상 컴퓨터의 몇 가지 기본 요구 사항을 확인해야 합니다.

  • PowerShell이 ​​업데이트되었습니다: 모든 기능을 활용하려면 PowerShell 6 이상을 사용하는 것이 좋습니다. Windows 10 및 11에서는 사전 설치되어 제공되지만 명령을 사용하여 버전을 확인하는 것이 좋습니다. $PSVersionTable.PSVersion.
  • OpenSSH 클라이언트: OpenSSH 클라이언트를 설치해야 합니다. Windows 10(빌드 1809) 및 Windows Server 2019부터 선택적 기능으로 포함되지만 필요한 경우 수동으로 설치할 수 있습니다.
  • 원격 컴퓨터에서 SSH 서버가 활성화됨: 연결할 시스템에는 SSH가 활성화되어 있어야 합니다(Linux 컴퓨터, Windows 컴퓨터, 네트워크 장치 등).
  • 네트워크 접속: 연결하는 컴퓨터는 SSH 서버의 IP 또는 도메인에 접근할 수 있어야 하며, 방화벽에서 포트 22가 열려 있는 것이 중요합니다.
  • 사용자 허가: 관리자 역할이 항상 필수적인 것은 아니지만, 많은 경우 기능을 설치하거나 원격 시스템에 액세스하려면 높은 권한이 필요합니다.
  Windows 11에서 화면을 쉽게 녹화하는 방법

Windows에서 OpenSSH 설치 및 버전 확인

시스템에 OpenSSH 클라이언트가 있는지 확인하려면 PowerShell을 열고 다음을 실행하세요.

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

설치됨(Installed) 또는 존재하지 않음(NotPresent) 상태가 표시됩니다. 클라이언트와 서버 둘 다에 해당합니다. 설치되어 있지 않으면 다음을 사용하여 추가할 수 있습니다.

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

자신의 컴퓨터에서 SSH 연결을 수신하도록 설정하려는 경우 서버의 경우:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

설치가 완료되면 PowerShell이나 명령 프롬프트에서 'ssh' 명령을 직접 사용할 수 있습니다.

Windows에서 SSH 서비스 구성 및 시작

Windows에서 SSH 연결을 허용하려면 서비스가 시작되었는지 확인해야 합니다. 시스템을 부팅할 때마다 자동으로 시작되도록 구성하고 시작하려면 다음을 실행하세요.

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

포트 22를 통해 들어오는 트래픽을 허용하는 방화벽 규칙이 이미 있는지 확인하는 것이 좋습니다. (SSH):

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."
}

시작하기: PowerShell에서 SSH를 통해 연결

모든 것을 설정한 후 간단한 PowerShell 명령으로 SSH 세션을 시작할 수 있습니다.

ssh usuario@servidor

'user'를 원격 컴퓨터의 사용자 이름으로 바꾸고, 'server'를 IP 또는 DNS 이름으로 바꾸세요. 실행하면 호스트 키(처음에는)와 비밀번호를 수락하라는 메시지가 표시됩니다.

Linux 서버에 연결하는 실제 예:

ssh root@192.168.1.100

활성 SSH 서버가 있는 다른 Windows 시스템이나 호환되는 네트워크 장치에 연결할 수도 있습니다.

고급 매개변수 및 키 인증

SSH는 인증 방법과 연결을 설정하는 방법에 있어 많은 유연성을 제공합니다. 가장 일반적인 매개변수는 다음과 같습니다.

  • -i 비밀번호 없는 인증을 위한 개인 키를 지정하려면: ssh -i ruta/claves/id_rsa usuario@servidor
  • -p 22 이외의 포트를 지정하려면: ssh -p 2222 usuario@servidor
  • -v 자세한 모드로 디버깅에 유용합니다.
  Windows 11에서 프로젝트 또는 클라이언트별로 정렬할 스마트 폴더 만들기

PowerShell에서는 ssh-keygen으로 생성한 키를 사용하여 원격 서버에 복사할 수 있으며, 비밀번호를 사용하지 않고도 보안과 편의성을 강화할 수 있습니다.

PowerShell을 사용하여 고급 SSH 세션을 관리하고 자동화합니다.

PowerShell은 기본 명령 외에도 SSH 세션과 함께 작동하기 위해 고급 cmdlet을 통합합니다. New-PSSession, Enter-PSSession 및 Invoke-Command. 이를 통해 원격 관리가 향상되어 매번 수동으로 로그인할 필요 없이 스크립트와 유지 관리 작업을 자동화할 수 있습니다.

  • 새로운 PSSession 호스트, 사용자, 비밀번호 또는 공개 키를 지정하여 새로운 원격 세션을 만들 수 있습니다.
  • Enter-PSSession 마치 다른 컴퓨터에 실제로 있는 것처럼 원격 세션에 대화형으로 접속하여 명령을 실행할 수 있습니다.
  • Invoke-Command 대량 관리나 자동화된 작업에 적합하며, 명령이나 스크립트 블록을 원격으로 실행합니다.

세션을 시작하는 예:

New-PSSession -HostName 192.168.1.100 -UserName admin

생성된 세션에 들어가려면:

Enter-PSSession -Session $session

PowerShell을 이용하면 편리하게 파일을 전송하고, 프로세스를 모니터링하고, 작업을 자동화하는 등의 작업을 모두 수행할 수 있습니다.

PowerShell 연결을 위해 Linux 및 macOS에서 SSH 서버 구성

PowerShell에서 Windows 컴퓨터를 관리할 수 있을 뿐만 아니라 Linux 및 macOS 서버에도 액세스할 수 있습니다. 이러한 컴퓨터에서는 OpenSSH 서비스가 설치되어 실행 중인지 확인해야 합니다. Linux(예: Ubuntu)에서는 다음과 같이 수행됩니다.

sudo apt install openssh-client
sudo apt install openssh-server

활성화되어 있는지 확인하려면:

sudo systemctl status sshd

macOS에서는 시스템 설정의 '공유' - '원격 로그인'에서 원격 액세스를 활성화하기만 하면 됩니다.

두 경우 모두 sshd_config 파일을 편집하여 암호 또는 공개 키 인증을 허용하고 PowerShell을 기본 셸로 설정할 수도 있습니다.

PowerShell의 유용한 SSH 명령

연결되면 다양한 원격 시스템 명령을 실행할 수 있습니다. 일상 관리에 유용한 몇 가지 예:

  • ls / 디렉토리: 디렉토리의 내용을 나열합니다
  • cd: 디렉토리 변경
  • 터치 / 새 항목: 새 파일을 만듭니다
  • rm / 항목 제거: 파일이나 폴더를 삭제합니다
  • mv / 이동 항목: 파일 이동 또는 이름 변경
  • scp: 클라이언트와 서버 간에 파일을 전송합니다.
  • 사용자 추가: 사용자 추가
  수리: iPhone의 중복 메시지 경고 알림

이러한 명령을 사용하면 반복적인 작업이나 복잡한 인프라에 대한 완벽한 관리, 자동화 및 스크립팅이 가능합니다.

PowerShell에서 SSH 세션의 고급 구성 및 사용자 지정

PowerShell SSH는 사용자의 필요에 맞게 환경을 사용자 지정할 수 있는 다양한 고급 옵션을 제공합니다.

  • 구성 파일 편집 $env:ProgramData\ssh\sshd_config에서 인증, 알고리즘, 규칙 등을 세부적으로 조정할 수 있습니다.
  • 비밀번호 또는 공개 키로 접근 허용 또는 차단 보안 요구 사항에 따라.
  • PowerShell과 같은 하위 시스템 추가 'Subsystem powershell c:/progra~1/powershell/7/pwsh.exe -sshs -nologo'를 사용하여 PowerShell에서 원격 세션을 직접 시작하도록 설정합니다.
  • 서비스를 다시 시작하고 환경 변수를 조정합니다. 모든 것이 올바르게 작동하도록합니다.