목차
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"
이 명령어는 다음과 같은 작업을 수행합니다.
- 로컬의
~/.ssh/id_rsa.pub
파일을 출력 (cat ~/.ssh/id_rsa.pub
) - SSH를 통해 원격 서버에 접속 (
ssh user@remote_host
) - 원격 서버에서
~/.ssh
디렉터리를 생성 (mkdir -p ~/.ssh
) authorized_keys
파일에 공개 키를 추가 (cat >> ~/.ssh/authorized_keys
)
SSH 접속 테스트
공개 키가 정상적으로 복사되었는지 확인하려면 SSH로 접속해 봅니다.
ssh user@remote_host
비밀번호 없이 원격 서버에 접속된다면 설정이 제대로 완료된 것입니다. ✅
추가 설정 (권한 문제 해결)
만약 비밀번호 없이 SSH 접속이 되지 않는다면 파일 권한을 확인해야 합니다.
✅원격 서버에서 권한 설정
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
🔹 ~/.ssh
→ 700 (rwx——)
🔹 ~/.ssh/authorized_keys
→ 600 (rw——-)
이렇게 설정하면 SSH 키 인증이 정상적으로 동작할 가능성이 높아집니다.
📌 요약
✅ ssh-copy-id
는 SSH 공개 키를 원격 서버에 쉽게 복사하는 명령어
✅ SSH 키가 없다면 ssh-keygen
을 사용해 생성
✅ ssh user@remote_host
로 테스트하여 무비밀번호 인증 확인
✅ 권한 문제 발생 시 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
로 해결