ssh-copy-id 윈도우에서 안 될 때, ssh 공개키를 복사해 서버에 등록하는 법
2026-10-17
이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서버에 비밀번호 없이 접속하고 싶어서 ssh-copy-id를 쳤는데, 윈도우 PowerShell은 그런 명령이 없다고 합니다. 리눅스와 맥에는 있지만 윈도우 기본 OpenSSH에는 빠져 있는 명령이라 그렇습니다.
명령이 없어도 하는 일은 단순합니다. 공개키 한 줄을 서버의 정해진 파일 끝에 붙이는 것뿐입니다. 그 한 줄을 어떻게 옮기는지 순서대로 보겠습니다.
목차
- 먼저 나눌 것, 공개키와 개인키
- 리눅스·맥은 ssh-copy-id 한 줄
- 윈도우는 PowerShell에서 직접 붙입니다
- 키를 손으로 붙여야 하는 자리
- 그래도 비밀번호를 물을 때
1. 먼저 나눌 것, 공개키와 개인키

▲ 서버로 가는 것은 .pub 한 줄뿐입니다
ssh-keygen으로 키를 만들면 두 개가 생깁니다. `id_ed25519`는 개인키, 끝에 `.pub`이 붙은 `id_ed25519.pub`이 공개키입니다.
공개키는 남이 봐도 되는 한 줄이고, 개인키는 내 컴퓨터 밖으로 나가면 안 됩니다. 서버에 등록하는 것은 언제나 .pub 쪽입니다. 헷갈리면 파일을 열어 보세요. `ssh-ed25519`로 시작하는 한 줄이면 공개키, BEGIN으로 시작하는 여러 줄이면 개인키입니다.
키가 아직 없다면 `ssh-keygen -t ed25519` 한 줄로 만듭니다. 묻는 말에 Enter만 눌러도 기본 위치(홈 폴더의 .ssh)에 생깁니다.
2. 리눅스·맥은 ssh-copy-id 한 줄
`ssh-copy-id 사용자@서버주소`를 치고 서버 비밀번호를 한 번 넣으면 끝입니다. 공개키를 서버의 `~/.ssh/authorized_keys` 끝에 붙여 주고, 폴더가 없으면 만들어 줍니다.
- 포트가 22가 아닐 때: `ssh-copy-id -p 2222 사용자@서버주소`
- 키가 여러 개일 때: `-i ~/.ssh/id_ed25519.pub`처럼 어느 공개키를 보낼지 정합니다
- No identities found: 보낼 공개키가 없다는 뜻입니다. 1번의 ssh-keygen부터 하세요
3. 윈도우는 PowerShell에서 직접 붙입니다

▲ 리눅스 명령이 하던 일을 한 줄로 풀어 쓴 것입니다
윈도우에서는 공개키 내용을 읽어 ssh로 서버에 흘려 넣으면 됩니다. PowerShell에서 아래 한 줄을 씁니다.
`type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh 사용자@서버주소 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"`
비밀번호를 한 번 묻고 나면 등록이 끝납니다. 꺾쇠 두 개(>>) 가 중요합니다. 하나만 쓰면 기존에 등록된 다른 키를 덮어써 버립니다.
4. 키를 손으로 붙여야 하는 자리
클라우드 콘솔의 SSH 키 칸이나 깃허브 설정처럼, 명령이 아니라 웹 화면에 공개키를 붙여야 하는 경우도 많습니다. 이때는 공개키를 클립보드로 복사합니다.
- 윈도우: `Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard`
- 맥: `pbcopy < ~/.ssh/id_ed25519.pub`
- 리눅스: `cat ~/.ssh/id_ed25519.pub` 출력을 끌어서 복사
붙일 때는 한 줄이 그대로 들어가야 합니다. 메모장이나 메신저를 거치며 중간에 줄이 바뀌면 서버가 키로 읽지 못합니다. 터미널에서 복사가 꼬이는 문제는 리눅스 복사 붙여넣기, 터미널에서 Ctrl+C를 누르면 명령이 멈추는 까닭에 따로 적었습니다.
키를 만든 노트북과 콘솔을 연 PC가 다른 기계라면, 그 한 줄을 넘길 길이 필요합니다. 공개키는 남이 봐도 되는 문자열이라 자고투(ZAGO.TO)에 붙여 숫자 4개로 넘겨도 됩니다. 열지 않으면 1분, 연 뒤 1분이 지나면 지워지고 다시 열 수 없으며, 서버가 글을 읽을 수 있으니 개인키는 이 방법으로도 절대 옮기지 마세요.
5. 그래도 비밀번호를 물을 때

▲ 대부분은 서버 쪽 권한 문제입니다
등록했는데도 접속할 때 비밀번호를 묻는다면 서버의 권한을 먼저 보세요. `~/.ssh` 폴더는 700, `authorized_keys`는 600이어야 합니다. 너무 열려 있으면 SSH가 일부러 키를 무시합니다.
홈 폴더 자체의 쓰기 권한이 다른 사람에게 열려 있어도 같은 일이 생깁니다. 접속할 때 `ssh -v 사용자@서버주소`로 자세한 기록을 보면 어느 키를 시도했고 왜 거절됐는지 나옵니다.
정리하면
윈도우에 그 명령이 없어도 공개키 한 줄을 authorized_keys 끝에 붙이면 같은 결과입니다. 옮기는 것은 .pub 한 줄, 내 컴퓨터에 남는 것은 개인키입니다.