SSH 뜻과 원격 접속 방법: 키 생성부터 맥, 윈도우 설정까지
SSH는 다른 컴퓨터에 명령으로 접속하고 통신 내용을 암호화하는 방식입니다. 내 컴퓨터와 접속받을 컴퓨터의 역할을 구분하고, Mac과 Windows에서 첫 접속 확인 및 종료, 공개키와 개인키의 차이를 익힙니다.

목차
세 줄로 먼저 읽기
이번 방문에서 한 편은 바로 볼 수 있습니다.
SSH는 다른 컴퓨터에 원격으로 명령을 내릴 때 쓰는 통신 방식입니다. 예를 들어 노트북에서 집의 Mac mini에 접속해 파일 목록을 확인할 수 있습니다. 내 노트북이 클라이언트, 접속을 받아 명령을 실행하는 Mac mini가 서버입니다. 두 역할은 컴퓨터 종류가 아니라 이번 연결에서 맡은 역할입니다.
검색하면 키를 만들거나 포트를 열라는 안내부터 나오지만, 처음 목표는 작아도 됩니다. 같은 신뢰할 수 있는 네트워크에 있는 내 컴퓨터 두 대를 연결해 상대 이름을 확인하고 종료하는 것부터 시작합니다. 다른 사람이나 회사의 기기라면 이미 허용된 접속 범위에서 진행합니다.
컴퓨터 두 대가 준비되지 않았다면 개념과 명령의 역할만 읽어도 됩니다. SSH 때문에 새 기기를 살 필요는 없습니다.
SSH와 OpenSSH는 무엇일까요?
SSH(Secure Shell)는 암호화된 원격 통신 규격입니다. OpenSSH는 이 규격을 사용하는 프로그램 모음이고, ssh는 접속할 때 실행하는 명령입니다. Mac의 터미널과 Windows의 PowerShell은 이런 명령을 입력하는 창입니다.
SSH는 암호화하지 않은 원격 로그인에서 비밀번호가 노출되는 문제를 줄이기 위해 만들어졌습니다. 암호화된 통신 내용을 중간에서 쉽게 읽지 못하게 하고, 연결 상대와 사용자를 확인하는 기능을 제공합니다. 다만 내 컴퓨터나 상대 컴퓨터 자체가 침해된 경우까지 막는 것은 아니며, 모든 네트워크 정보가 숨겨지는 것도 아닙니다. OpenSSH 안내
SSH에 접속하면 기본적으로 글자로 명령을 입력합니다. 집 컴퓨터의 바탕화면이 그대로 나타나는 화면 공유와는 다릅니다. 연결이 끊긴 뒤 프로그램이 계속 실행될지도 프로그램과 실행 방식에 따라 달라집니다.
접속 전에 두 컴퓨터를 구분합니다
| 구분 | 필요한 것 | 이 글에서 할 일 |
|---|---|---|
| 접속하는 컴퓨터 | SSH 클라이언트 | 터미널이나 PowerShell에서 ssh 실행 |
| 접속받을 컴퓨터 | SSH 서버와 허용된 계정 | 원격 로그인 또는 sshd 서비스 실행 |
| 두 컴퓨터 사이 | 서로 접근할 수 있는 주소와 네트워크 | 같은 신뢰 네트워크에서 먼저 확인 |
두 기기에서 각각 hostname과 whoami를 실행해 컴퓨터 이름과 계정을 미리 적습니다. 같은 이름이 붙은 기기는 이름만으로 구별하기 어려우므로 접속받을 주소도 함께 기록합니다.
같은 Wi-Fi 이름을 써도 게스트 네트워크나 기기 격리 설정 때문에 연결되지 않을 수 있습니다. 기기가 켜져 있고 네트워크에 연결돼 있어야 하며, 잠자기 상태에서는 접속이 안 될 수 있습니다.
접속하는 컴퓨터에서 Mac은 Spotlight로 ‘터미널’을, Windows는 시작 메뉴에서 ‘PowerShell’을 열고 다음을 입력합니다.
ssh -Vssh -V 결과로 OpenSSH 버전이 나오면 접속 명령이 준비된 것입니다. 앞의 hostname과 whoami도 이 명령 창에 한 줄씩 입력합니다. Windows에서 명령을 찾지 못하면 설정의 ‘선택적 기능’에서 OpenSSH Client 설치 여부를 확인합니다. Client가 있다고 접속받는 Server까지 준비된 것은 아닙니다.
접속받을 컴퓨터에서 서버를 켭니다
Mac이 접속받는 경우
접속받을 Mac에서 시스템 설정 → 일반 → 공유 → 원격 로그인을 엽니다. 원격 로그인을 켜고 접근할 사용자는 이번에 쓸 계정으로 제한합니다. 화면에 표시되는 ssh 계정이름@주소 형태의 접속 명령을 기록합니다. 여기서 계정 이름은 메신저 별명이 아니라 해당 Mac의 로그인 계정입니다.
그림은 이전 macOS 문서 화면이며 버전별로 항목 배치가 다를 수 있습니다. 첫 이름 조회 실습에 ‘전체 디스크 접근’을 추가로 허용할 필요는 없습니다. Apple 원격 로그인 안내
Windows가 접속받는 경우
Windows에서는 시작 메뉴에서 ‘선택적 기능’을 찾아 OpenSSH Server가 설치됐는지 확인하고 없으면 추가합니다. 설치에는 관리자 권한이 필요할 수 있습니다. 이어 ‘서비스’ 앱에서 OpenSSH SSH Server를 찾아 시작합니다. 계속 사용할 기기라면 시작 유형을 자동으로 둘 수 있지만, 첫 실습에 자동 시작까지 필수는 아닙니다.
설치 과정에서 SSH 접속을 받는 TCP 22번 방화벽 규칙이 만들어집니다. 포트는 한 기기 안에서 어느 서비스로 연결할지 구분하는 번호입니다. Windows 방화벽의 허용 범위와 계정 접근 조건도 확인해야 하며, 오류가 난다고 방화벽 전체를 끄지는 않습니다. Microsoft 설치와 시작 안내
접속받을 Windows에서 일반 PowerShell을 열어 whoami로 계정을 확인하고, ipconfig에서 현재 연결된 Wi-Fi나 Ethernet의 IPv4 주소를 찾습니다. 여러 어댑터가 있으면 가상 어댑터 주소와 구별합니다. 처음에는 비밀번호가 설정된 본인의 로컬 계정을 쓰는 편이 이해하기 쉽습니다. 로컬 계정에서 whoami가 DESKTOP-ABC\juni처럼 나오면 이 예시의 사용자 이름은 juni입니다. Windows Hello PIN은 SSH 비밀번호와 다릅니다. 조직 계정은 관리자에게 접속 형식을 확인합니다.
첫 접속에서는 서버 지문을 확인합니다
이제 접속하는 컴퓨터의 터미널 또는 PowerShell로 돌아옵니다. 명령의 형식은 다음과 같습니다. 사용자이름과 주소라는 글자를 그대로 입력하지 말고 앞에서 확인한 값으로 바꿉니다.
ssh 사용자이름@주소예를 들어 계정이 juni, 주소가 192.168.1.50인 경우라면 ssh juni@192.168.1.50입니다. 이 주소는 설명용이며 내 기기의 주소로 바꿔야 합니다.
처음 접속할 때 진위를 아직 확인하지 못했다는 문구와 SHA256:... 형태의 호스트 키 지문이 나올 수 있습니다. 지문은 접속받는 서버의 공개키를 짧게 표시한 값입니다. ‘처음이니 무조건 yes’가 아니라, 상대 기기에서 직접 확인한 지문 또는 관리자가 신뢰할 수 있는 경로로 알려 준 값과 비교합니다.
접속받을 Mac에서 직접 터미널을 열어 Ed25519 호스트 키의 지문을 보는 예입니다.
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub접속받을 Windows에서 직접 PowerShell을 열어 같은 종류의 지문을 보는 예입니다.
ssh-keygen -lf C:\ProgramData\ssh\ssh_host_ed25519_key.pub접속 화면의 키 종류도 ED25519인 경우에 비교합니다. 파일이 없거나 RSA 등 다른 종류가 표시되면 해당 서버의 실제 키 종류와 파일을 확인해야 합니다. 모르면 연결 창에서 Ctrl+C로 중단하고 관리자에게 물어봅니다. 지문이 일치할 때만 yes로 신뢰를 저장합니다. 다음 연결에서 지문 변경 경고가 나오면 기기 재설치 같은 정상 변경인지 확인하며, 경고를 없애려고 저장 기록부터 지우지 않습니다.
서버가 비밀번호 로그인을 허용한다면 접속받을 계정의 비밀번호를 입력합니다. 입력 중 글자나 별표가 안 보일 수 있습니다. 비밀번호가 아닌 키만 허용된 서버라면 관리자에게 공개키 등록 절차를 확인해야 합니다. OpenSSH 접속과 호스트 확인
연결됐는지 확인하고 종료합니다
로그인 후 다음 두 명령을 하나씩 입력합니다.
hostname
whoamihostname은 지금 명령이 실행되는 컴퓨터의 이름, whoami는 로그인한 계정입니다. 접속받을 기기에서 직접 확인한 값과 맞는지 비교합니다. 명령 입력창 모양이 달라진 것만으로 성공을 판단하지 않습니다.
종료할 때는 다음을 입력합니다.
exit연결이 닫히고 내 컴퓨터의 입력창으로 돌아오면 다시 hostname을 실행해 내 기기 이름이 나오는지 확인합니다. 혼자 반복할 때는 같은 주소로 다시 접속해 상대 이름을 확인하고 exit로 나옵니다. 이 과정에서는 파일을 지우거나 설정을 바꾸지 않습니다.
상대 기기의 이름과 계정을 확인하고 종료한 뒤 다시 접속할 수 있으면 이 글의 첫 연결 연습을 마친 것입니다. 아래 키 생성은 추가로 진행하는 선택 단계입니다.
공개키와 개인키는 무엇일까요?
SSH는 비밀번호 인증도 지원합니다. 공개키 인증은 접속하는 쪽이 개인키를 갖고 있음을 증명하는 다른 방법입니다. 개인키 파일을 서버로 전송하는 방식은 아닙니다.
- 공개키: 자물쇠에 비유할 수 있습니다. 접속받을 계정의 허용 목록에 등록합니다.
- 개인키: 그 자물쇠에 맞는 열쇠에 비유할 수 있습니다. 접속하는 컴퓨터에 보관하고 다른 사람에게 내용이나 파일을 보내지 않습니다.
이 비유는 역할을 설명하기 위한 것입니다. 서버에는 여러 공개키를 등록할 수 있고, 등록을 지우면 그 키의 접근도 막을 수 있습니다. 앞에서 확인한 서버의 호스트 키와 지금 만드는 사용자의 로그인 키도 서로 다릅니다.
선택: 기존 키와 다른 이름으로 생성합니다
키 인증으로 바꾸려는 경우에만 접속하는 컴퓨터에서 진행합니다. 현재 사용자 폴더로 이동한 뒤 아래 명령을 입력합니다.
Mac 터미널:
cd ~
ssh-keygen -t ed25519 -f ./ssh-practice-ed25519 -C "ssh-practice"Windows PowerShell:
Set-Location $env:USERPROFILE
ssh-keygen -t ed25519 -f ./ssh-practice-ed25519 -C "ssh-practice"-t는 키 종류, -f는 저장 파일, -C는 식별용 메모입니다. Ed25519는 널리 쓰이는 키 종류이며 서버 정책이 다른 경우는 그 정책을 따릅니다. 이 예시는 기본 id_ed25519를 덮어쓰지 않도록 별도 이름을 사용합니다. 같은 연습 파일이 이미 있어 덮어쓸지 물으면 n으로 중단합니다.
이어 개인키를 보호할 패스프레이즈를 두 번 입력합니다. 서버 계정 비밀번호와 다른 암호입니다. 정상적으로 끝나면 사용자 폴더에 ssh-practice-ed25519와 ssh-practice-ed25519.pub가 생깁니다. .pub이 공개키입니다. ssh-keygen 옵션
공개키 내용을 확인할 때 Mac은 cat ./ssh-practice-ed25519.pub, Windows PowerShell은 Get-Content ./ssh-practice-ed25519.pub를 사용합니다. 앞에 ssh-ed25519가 있는 한 줄이 공개키 내용입니다. .pub을 빼면 개인키를 읽게 되므로 파일 이름을 먼저 확인합니다.
키 생성과 서버 등록은 별개입니다
공개키를 만들었다고 바로 로그인되지는 않습니다. 접속받을 서버의 해당 계정에 공개키 내용만 등록해야 합니다. 보통 Mac이나 Linux는 계정의 ~/.ssh/authorized_keys를 사용합니다. 기존 키가 있을 수 있으므로 파일 전체를 덮어쓰면 안 됩니다.
Windows 서버의 일반 계정은 사용자 프로필의 .ssh\authorized_keys, 관리자 계정은 기본 설정에서 C:\ProgramData\ssh\administrators_authorized_keys를 사용하며 파일 접근 권한 설정도 필요합니다. Mac용 명령을 그대로 복사하지 말고 Windows 키 등록 공식 절차를 따릅니다. ssh-copy-id는 모든 Mac과 Windows에 기본 제공되는 명령이 아닙니다.
등록을 마친 뒤, 앞에서 키를 만든 사용자 폴더에서 접속하는 형식은 다음과 같습니다.
ssh -i ./ssh-practice-ed25519 -o IdentitiesOnly=yes 사용자이름@주소-i는 사용할 개인키 파일을 지정합니다. 서버 계정 비밀번호로 넘어가면 키 등록과 경로를 확인합니다. 키의 패스프레이즈를 묻는 것은 정상일 수 있습니다. 키 접속 후에도 hostname과 whoami를 확인하고 exit로 종료합니다. 키 생성만 끝난 상태와 키 인증으로 접속까지 확인한 상태를 구별합니다. 키로 접속되는 것을 확인하기 전에 기존 비밀번호 접속을 먼저 꺼 버리면 접속 수단을 잃을 수 있습니다.
오류가 나면 어디부터 볼까요?
| 표시 또는 상황 | 먼저 확인할 것 |
|---|---|
Connection timed out | 기기 전원과 잠자기, 주소, 네트워크 경로, 방화벽 범위 |
Connection refused | 주소와 포트, 원격 로그인 또는 sshd 서비스 실행 여부 |
Permission denied | 계정 이름, 허용된 인증 방식, 비밀번호 또는 등록된 공개키 |
| 호스트 키 변경 경고 | 주소가 맞는지, 서버 재설치 등 키 변경 이유가 확인됐는지 |
ssh 명령을 찾지 못함 | 접속하는 컴퓨터의 OpenSSH Client 설치 여부 |
하나의 오류 문구가 원인을 하나로 확정하지는 않습니다. 도움을 요청할 때는 어느 기기에서 접속했는지, 어느 단계인지, 비밀값을 지운 오류 문구를 전달합니다. 개인키와 비밀번호는 붙이지 않습니다.
집 밖의 연결은 별도 단계입니다
집 안 주소가 카페에서도 그대로 연결되는 것은 아닙니다. 인터넷에서 집 기기까지 도달할 경로가 필요합니다. 공유기의 포트 포워딩은 외부 요청을 내부 기기로 전달하는 설정으로, SSH 서비스를 인터넷에 노출할 수 있습니다. 첫 연습을 위해 이를 켤 필요는 없습니다.
Tailscale은 등록한 기기 사이에 사설 연결망을 구성하는 도구입니다. 일반적인 사용에서는 공유기에 수동 포트 포워딩을 추가하지 않아도 연결할 수 있습니다. 다만 계정과 기기 승인, 접근 정책은 확인해야 하며 언제나 직접 연결되는 것도 아닙니다. 중계 서버를 거칠 수도 있습니다. Tailscale 시작 안내
Tailscale을 깔았다는 사실만으로 SSH 서버가 켜지거나 모든 계정의 로그인이 허용되는 것은 아닙니다. 같은 네트워크에서 첫 연결을 확인한 뒤 Tailscale 원격 접속 안내를 이어서 살펴볼 수 있습니다.
SSH를 켜 두면 위험하지 않나요?
접근 가능한 기기, 허용한 계정, 인증 방식과 업데이트 상태에 따라 달라집니다. 내부망에서도 다른 기기가 접근할 수 있으므로 무조건 안전하다고 보지는 않습니다. 필요하지 않은 기간에는 Mac의 원격 로그인을 끄거나 Windows의 OpenSSH SSH Server 서비스를 중지할 수 있습니다. 사용 중인 연결이 끊길 수 있으므로 접속받을 기기에서 직접 조작할 수 있을 때 정리합니다.
폰이나 태블릿에서도 되나요?
SSH 클라이언트 앱과 연결 가능한 네트워크가 있으면 가능합니다. 작은 화면에서는 긴 작업을 새로 시작하기보다 이미 실행한 작업의 상태를 확인하는 용도로 활용할 수 있습니다. 앱 설치와 인증 설정은 별도로 필요합니다.
Sources

제대로 이해했는지 한 문제로 확인해 볼까요?
답을 고르면 바로 풀이가 나와요.
SSH 키를 만들면 파일이 두 개 생기는데, 접속받을 컴퓨터에 등록하는 것은 어느 쪽일까요?
이 글이 도움이 되었나요?
AI에게 맡기기 전에 알아야 할 터미널, Git, 배포 기초입니다
코스 전체 보기 →
새 글과 AI 소식을 메일로 받아 보세요
AI가 바꾸는 일과 도구, 측정 실무 이야기를 매주 한 번 보내 드려요.
