ssh-copy-id 명령어란?

ssh-copy-id로컬 머신의 SSH 공개 키를 원격 서버에 복사하는 명령어입니다.
이를 통해 비밀번호 없이 SSH 로그인(무비밀번호 인증)이 가능하도록 설정할 수 있습니다.


기본 사용법

ssh-copy-id user@remote_host

🔹 user → 원격 서버의 사용자 계정
🔹 remote_host → 원격 서버의 IP 주소 또는 도메인

예제:

ssh-copy-id ubuntu@192.168.1.100

이후, 원격 서버의 비밀번호를 입력하면 SSH 공개 키(~/.ssh/id_rsa.pub)가 서버에 자동으로 복사됩니다.


SSH 키가 없으면 생성하기

만약 SSH 키가 없다면 먼저 생성해야 합니다.

ssh-keygen -t rsa -b 4096

  • 기본적으로 ~/.ssh/id_rsa (개인 키)와 ~/.ssh/id_rsa.pub (공개 키)이 생성됩니다.
  • 기존 키가 있다면 덮어쓰지 않도록 주의하세요.

수동으로 SSH 키 복사하는 방법 (ssh-copy-id 없이)

ssh-copy-id 명령어가 없는 경우, 수동으로 SSH 키를 복사할 수도 있습니다.

cat ~/.ssh/id_rsa.pub | ssh user@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

이 명령어는 다음과 같은 작업을 수행합니다.

  1. 로컬의 ~/.ssh/id_rsa.pub 파일을 출력 (cat ~/.ssh/id_rsa.pub)
  2. SSH를 통해 원격 서버에 접속 (ssh user@remote_host)
  3. 원격 서버에서 ~/.ssh 디렉터리를 생성 (mkdir -p ~/.ssh)
  4. authorized_keys 파일에 공개 키를 추가 (cat >> ~/.ssh/authorized_keys)

SSH 접속 테스트

공개 키가 정상적으로 복사되었는지 확인하려면 SSH로 접속해 봅니다.

ssh user@remote_host

비밀번호 없이 원격 서버에 접속된다면 설정이 제대로 완료된 것입니다. ✅


추가 설정 (권한 문제 해결)

만약 비밀번호 없이 SSH 접속이 되지 않는다면 파일 권한을 확인해야 합니다.

원격 서버에서 권한 설정

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

🔹 ~/.ssh700 (rwx——)
🔹 ~/.ssh/authorized_keys600 (rw——-)

이렇게 설정하면 SSH 키 인증이 정상적으로 동작할 가능성이 높아집니다.


📌 요약

ssh-copy-id는 SSH 공개 키를 원격 서버에 쉽게 복사하는 명령어
✅ SSH 키가 없다면 ssh-keygen을 사용해 생성
ssh user@remote_host로 테스트하여 무비밀번호 인증 확인
✅ 권한 문제 발생 시 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys로 해결

Leave a Comment