-
Windows 내장 SSH 클라이언트 제대로 사용하기Technologies 2025. 4. 18. 16:00
사진: Unsplash 의 Franck Windows 10에 OpenSSH 클라이언트가 제공된다는 사실, 알고 계셨나요?
Windows 10 Fall Creators Update (1709)부터는 OpenSSH 클라이언트가 Windows 부가 기능으로 제공되기 시작하고 있습니다. 하지만 리눅스와는 많이 다른 생소한 사용법 때문에 제공이 된다는 사실만 알고 있거나, 여전히 제대로 지원이 안된다고 오해하기 쉽습니다.
이번 아티클에서는 흔히 사용하는 OpenSSH에 관련된 클라이언트 환경 설정 방법을 Windows 10이 기본으로 제공하는 방식으로 설정하는 방법을 살펴보고, 여기에 더하여 몇 가지 유용한 팁을 드리려고 합니다.
Windows OpenSSH 구성하기
관리자 권한으로 PowerShell 시작 후 Windows 구성 요소 추가를 위하여 아래 PowerShell 명령어를 사용합니다.
지금 설치할 마이크로소프트에서 제공하는 OpenSSH는 흔히 사용하는 클래식 제어판 control.exe의 Windows 구성 요소 추가/제거 대화 상자에 나오는 항목이 아닌 Feature-On-Demand 스타일의 추가 패키지이므로 설정 앱의 선택적 기능 메뉴를 이용하거나 아래의 명령어를 사용해야만 설치할 수 있습니다.
$OpenSSHClient = Get-WindowsCapability -Online | ? Name -like ‘OpenSSH.Client*’Add-WindowsCapability -Online -Name $OpenSSHClient.Name
보통의 경우 설치 후 시스템 재시작은 필요하지 않습니다.
설치를 완료한 후,ssh-agent 서비스를 활성화해야 합니다. 이 서비스는 SSH 키의 비밀 번호를 매번 묻지 않도록 등록하기 위하여 사용됩니다. 처음에는 서비스가 비활성화 되어있고, 정지되어있으므로 서비스가 자동 시작되도록 설정하고, 지금 시작하도록 만듭니다.
$SSHAgentSvc = Get-Service -Name ‘ssh-agent’ Set-Service -Name $SSHAgentSvc.Name -StartupType Automatic Start-Service -Name $SSHAgentSvc.Name
이제 관리자 모드의 PowerShell 창은 닫고, 일반 권한의 PowerShell 창을 열어 작업해야 합니다.
시스템을 새로 설정하는 것이므로, 새로운 SSH 키를 만들어보겠습니다. OpenSSH 클라이언트 패키지와 함께 자주 쓰이는 유틸리티도 같이 추가되었습니다. ssh-keygen 명령어를 실행하여, 순서대로 응답합니다.
ssh-keygen
그러면 $HOME\.ssh\id_rsa 파일과 $HOME\.ssh\id_rsa.pub 파일로 Key Pair가 만들어지게 됩니다.
이제 이 Key Pair를 ssh-agent 서비스에 추가하기 위하여 ssh-add 명령어를 실행합니다.
ssh-add
자동으로 $HOME\.ssh\id_rsa Key Pair를 등록하게 되며, 이제부터 해당 Key Pair로 인증을 할 수 있게 되었습니다.
노트: 간혹 시스템에 여러가지 ssh.exe 바이너리 파일이 설치되고, PATH 환경 변수에 중복으로 ssh.exe 바이너리 경로가 지정되는 일이 있습니다. 이 문제를 디버깅하려면 path 명령어 또는 PATH 환경 변수의 내용을 검토하여 실제로 사용할 ssh.exe 바이너리가 있는 폴더 경로를 제일 먼저 등장시키거나, 단 하나만 유지하도록 변경합니다.
Github에 SSH 키 등록하기
이렇게 만든 SSH Key Pair의 Public Key를 Github 또는 여러분이 사용하는 Git 리포지터리에 등록해야 합니다.
다른 시스템에 알릴 Public Key 값을 복사하기 위하여 다음의 PowerShell 명령어를 입력합니다.
Get-Content -Path $HOME\.ssh\id_rsa.pub | Set-Clipboard
그러면 클립보드에 자동으로 텍스트가 입력됩니다.
그 다음 GitHub 설정 페이지를 열기 위하여 아래와 같이 명령어를 입력합니다. (또는 기본 브라우저 대신 여러분이 원하는 브라우저로 아래 URL을 직접 열어도 됩니다.)
Start-Process ‘https://github.com/settings/ssh/new'
그 후 클립보드에 들어있는 Public Key를 붙여넣고, Key에 대한 알기 쉬운 설명을 추가하여 등록합니다.
Git 클라이언트 설치하고 SSH 연동하기
Git 클라이언트를 설치하는 방법은 여러 가지가 있지만, 가장 직관적이고 쉬운 방법으로는 Chocolatey Package Manager를 이용하는 것을 개인적으로 추천합니다.
공식 Git 클라이언트 설치 패키지의 경우, Side Effect를 일으킬 수 있는 옵션들을 많이 노출하기 때문에, 잘못 설치할 경우 의도하지 않은 기능들 때문에 어려움을 겪을 수 있다고 생각합니다.
우선 Chocolatey Package Manager가 설치되어있지 않으면 설치하도록 합니다. 시스템 수준의 소프트웨어 추가 과정이므로 잠시 관리자 권한으로 PowerShell 창을 새로 열도록 합니다.
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1'))
이제 Git for Windows 클라이언트를 설치하는 명령어를 입력합니다.
종종 Chocolatey.org 웹 사이트가 정기 점검 기간에 들어가는 경우, 설치가 제대로 진행되지 않을 수 있습니다. 이 경우 Chocolatey.org 웹 사이트에서 상태를 확인한 후 나중에 다시 시도하도록 합니다.
choco install git -y
다시 일반 PowerShell 창으로 돌아와서, GIT_SSH 환경 변수를 설정합니다. 이 환경 변수를 지정해야 Git 클라이언트가 Windows 10의 SSH 클라이언트를 제대로 인식할 수 있습니다.
$SSHPath = (Get-Command -Name ‘ssh.exe’).Source [Environment]::SetEnvironmentVariable(‘GIT_SSH’, $SSHPath, ‘User’)
oh-my-posh로 PowerShell 기능 강화하기
이름에서 알 수 있듯이, oh-my-posh는 요즈음 macOS와 Linux에서 유행하는 oh-my-zsh의 Windows PowerShell 버전입니다. 그리고 흥미롭게도 oh-my-zsh가 제공하는 기능 중에서도 특징적인 기능들을 잘 지원합니다.
우선 oh-my-posh 설치 스크립트를 실행합니다. PowerShell의 공식 모듈 리포지터리에 올라와있으므로 명령어가 복잡하지 않고 간단합니다.
Install-Module posh-git -Scope CurrentUser Install-Module oh-my-posh -Scope CurrentUser
만약 Windows용 PowerShell Core (6.x 이상)에서 설치하는 경우에만 아래 명령을 추가로 실행하도록 합니다.
Install-Module -Name PSReadLine -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck
PowerShell 시작 시 자동으로 oh-my-posh 셸을 로드할 수 있게 하기 위하여 Profile 파일 편집합니다. 아래 명령을 실행하면, 파일이 없을 경우 새로 만들어주는 동작까지 처리합니다.
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }notepad.exe $PROFILE
스크립트의 제일 마지막에 다음의 코드를 추가하고 저장합니다.
Import-Module posh-git Import-Module oh-my-posh Set-Theme Paradox
부수적으로 Powerline 패치가 적용된 프로그래밍 폰트를 사용하는 것이 모양이 예쁘고 글리프 부분이 깨지지 않습니다. 아래 명령어를 관리자 권한의 PowerShell에서 다시 실행하고, 콘솔 창의 글꼴 설정을 D2Coding 폰트로 업데이트합니다.
Import-Module posh-git Import-Module oh-my-posh Set-Theme Paradox
모든 설정이 적용되면 아래 그림과 같이 나타나며, Git 리포지터리로 디렉터리를 이동하면 브랜치 이름까지 잘 보이는 것을 확인할 수 있습니다. 이 정도면 어느 정도 구색이 갖추어진 것 같네요. 😎
부록 1: Windows Terminal 앱 설치하기
PowerShell에서 다음 명령어를 실행하여 Windows Terminal 앱 스토어 페이지로 바로 갈 수 있습니다. 익히 알려진대로 Windows Terminal을 사용하면 모던 CLI 개발 환경의 이점을 모두 누릴 수 있게 됩니다.
Start-Process 'https://www.microsoft.com/store/productId/9N0DX20HK701'
설치한 후에는 wt.exe 또는 wt 단축어로 Windows Terminal 앱을 바로 띄울 수 있습니다. 즉 Windows에서는 cmd, powershell, pwsh 대신 wt를 기억하시면 되겠습니다. 😏
부록 2: Visual Studio Code와 연동하기
GIT_SSH 환경 변수를 제대로 등록했다면 특별한 설정 없이 연동이 완료됩니다. 다만 설정을 완료했음에도 git pull 등의 작업을 수행할 때 별 다른 메시지 없이 계속 진행 중으로 뜰 때에는 ssh-add -l 명령 내장 터미널에서 실행하여 ssh-agent 서비스와의 연결 상태를 점검해볼 수 있습니다.
'Technologies' 카테고리의 다른 글
WSL v2 가져오기·내보내기로 팀 공통 개발 환경 만들기 (1) 2025.04.20