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 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / passwd - 사용자 비밀번호 변경

Linux / 명령어 / passwd - 사용자 비밀번호 변경

Linux passwd 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / unzip - ZIP 파일 목록 확인과 안전한 압축 해제

Linux / 명령어 / unzip - ZIP 파일 목록 확인과 안전한 압축 해제

Linux unzip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / umask - 새 파일·디렉터리 기본 권한 제한

Linux / 명령어 / umask - 새 파일·디렉터리 기본 권한 제한

Linux umask 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어

Linux / 명령어

리눅스에서 자주 사용하는 명령어를 파일, 텍스트, 권한, 프로세스, 시스템, 디스크, 네트워크와 패키지 관리 작업별로 정리했습니다. 링크가 있는 명령어는 자세한 사용법과 예제를 확인할 수 있습니다.

Linux / machine-id 확인 방법과 시스템 복제 시 주의사항

Linux / machine-id 확인 방법과 시스템 복제 시 주의사항

machine-id의 역할과 확인 방법, 복제용 이미지에서 파일을 삭제·비우거나 uninitialized로 설정할 때의 차이를 설명합니다. 운영 중인 서버의 ID 중복을 안전하게 처리하기 위한 점검 사항도 다룹니다.

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux rm 명령어로 파일과 디렉터리를 삭제하는 방법을 설명합니다. 재귀 삭제, 대화형 확인, 루트 보호 옵션과 복구가 어려운 삭제를 안전하게 다루는 원칙을 정리합니다.

Linux / 명령어 / less - 긴 파일을 검색하며 페이지 단위로 보기

Linux / 명령어 / less - 긴 파일을 검색하며 페이지 단위로 보기

Linux less 명령어로 긴 텍스트와 명령 출력을 페이지 단위로 탐색하는 방법을 설명합니다. 검색, 이동, 실시간 갱신과 파이프 사용법을 정리합니다.

Linux / 명령어 / realpath - 절대 경로와 실제 경로 확인

Linux / 명령어 / realpath - 절대 경로와 실제 경로 확인

Linux realpath 명령어로 상대 경로와 심볼릭 링크를 정규화하고 절대·상대 경로를 출력하는 방법을 설명합니다. 경로 존재 조건과 보안상 주의점도 함께 정리합니다.

Linux / 명령어 / rpm - RPM 패키지와 설치 데이터베이스 조회

Linux / 명령어 / rpm - RPM 패키지와 설치 데이터베이스 조회

Linux rpm 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux 강좌 / 현재 위치 확인하고 이동하기 - pwd, ls, cd, tree

Linux 강좌 / 현재 위치 확인하고 이동하기 - pwd, ls, cd, tree

pwd, ls, cd, tree를 연결해 현재 위치를 확인하고 디렉터리를 탐색합니다. 절대·상대 경로의 차이와 안전하게 돌아오는 방법도 실습합니다.