Linux / 명령어 / ssh-copy-id - SSH 공개키를 원격 계정에 등록
ssh-copy-id는 로컬 SSH 공개키를 원격 계정의 authorized_keys에 추가해 공개키 로그인을 준비합니다. 개인키를 서버로 복사하는 명령이 아닙니다.
ssh-copy-id 명령어란?
먼저 암호 로그인이나 다른 인증 방식으로 대상 계정에 접속할 수 있어야 합니다. -i로 등록할 공개키 파일을 지정하면 여러 로컬 키 중 잘못된 키를 선택할 가능성이 줄어듭니다. 도구는 등록 여부를 확인하려고 SSH 접속을 시도하며, 서버 정책에 따라 동작이 달라질 수 있습니다.
기본 문법
ssh-copy-id [옵션] [사용자@]호스트
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man ssh-copy-id으로 현재 시스템의 설명을 확인하세요.
사용 예제
등록할 공개키 확인
파일 끝의 .pub를 확인하고 지문도 검토합니다.
ssh-keygen -lf ~/.ssh/id_ed25519_work.pub
실제 등록 전 미리 보기
지원되는 구현에서 복사할 키를 확인합니다. 원격 변경은 하지 않습니다.
ssh-copy-id -n -i ~/.ssh/id_ed25519_work.pub alice@server.example.com
공개키 등록
원격 호스트 키를 검증한 뒤 해당 계정에 공개키를 추가합니다.
ssh-copy-id -i ~/.ssh/id_ed25519_work.pub alice@server.example.com
공개키 등록 뒤 확인하기
ssh-copy-id는 로컬 공개키를 원격 계정의 허용 키 목록에 추가합니다. 원격 계정에 먼저 접속할 수 있고 해당 계정의 권한이 있어야 합니다.
ssh-copy-id -i ~/.ssh/id_ed25519_work.pub user@server.example.test
등록에 성공했을 때 나타날 수 있는 출력:
Number of key(s) added: 1
등록 뒤 ssh -i ~/.ssh/id_ed25519_work user@server.example.test로 실제 공개키 인증이 작동하는지 확인하세요. 성공 메시지만으로 암호 로그인을 비활성화해도 안전하다고 판단하지 마세요. 다른 관리자 계정과 비상 접속 경로도 먼저 확인해야 합니다.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-i 공개키파일 |
등록할 공개키를 명시적으로 선택합니다. |
-n |
실제 등록 없이 수행할 작업을 표시합니다. |
-p 포트 |
원격 SSH 서버 포트를 지정합니다. |
-s |
지원되는 구현에서 SFTP 전송 방식을 사용합니다. |
-f |
이미 등록된 키 검사 없이 강제로 추가할 수 있어 중복에 주의합니다. |
사용할 때 주의할 점
호스트 키 경고를 무시하고 진행하지 마세요. 등록 후 새 터미널에서 ssh -i ~/.ssh/id_ed25519_work alice@server.example.com으로 로그인되는지 확인하기 전에는 기존 암호 인증을 끄지 않습니다. 등록된 공개키를 제거하려면 원격 계정의 ~/.ssh/authorized_keys에서 정확한 한 줄만 백업 후 삭제해야 하며 다른 키는 보존하세요.
자주 묻는 질문
ssh-copy-id 실행 후에도 암호를 묻는 이유는?
첫 등록에는 기존 인증이 필요할 수 있습니다. 등록 후에도 계속 묻는다면 선택한 개인키, 서버의 authorized_keys 권한과 SSH 서버 설정을 확인하세요.
공식 문서
옵션의 정확한 동작과 구현별 차이는 ssh-copy-id 관련 공식 문서에서 확인할 수 있습니다.









