클라이언트에서 SSH 키 생성
키생성
ssh-keygen -t ed25519 -f ~/.ssh/client key- ls ~/.ssh
[rocky@client .ssh]$ ls ~/.ssh
client_key client_key.pub
- 그러면 두 개의 파일이 생성됨
~/.ssh/client_key→ 개인키 (절대 노출 금지)~/.ssh/client_key.pub→ 공개키 (서버에 전달할 것)
공개키를 서버로 복사
ssh-copy-id -i ~/.ssh/client_key.pub 사용자명@서버IP - 서버에서 비밀번호 금지시에는 안됨
접속
ssh -i ~/.ssh/client_key 사용자명@서버IP 뭔가 새로 생겼다
키생성시 클라이언트는 가 ~/ 경로에 .ssh 생겼고
서버는 ssh 키 이동시 ~/ 경로에 .ssh 가 생겼다.
서버에는 authorized_keys 클라이언트에는 known_hosts, known_hosts.old 가 생겼다.
authorized_keys 에는 접속을 허용할 클라이언트의 공개키 목록
known_hosts 는 접속했던 서버의 공개키 목록이다
근데 ssh-copy-id와 scp는 뭐가 다른데?
| 구분 | ssh-copy-id | scp |
|---|---|---|
| 무엇을 복사? | 공개키 파일 (.pub) | 일반 파일 (예: .txt, .zip) |
| 복사 위치 | 서버의 ~/.ssh/authorized_keys에 자동 추가 | 지정한 서버 디렉터리 (예: /home/user/file.txt) |
| 용도 | 키 기반 SSH 로그인 설정 | 서버 ↔ 클라이언트 간 파일 전송 |
| 자동 처리 | 공개키 파일만 옮기고, 권한 설정까지 자동으로 처리 | 그냥 파일 복사만 함 (권한 설정 X) 직접 authorized_keys에 복사하고, 권한도 설정해야 작동 |
| 실행 후 변화 | 서버는 키를 등록하고 비밀번호 없이 접속 가능 | 서버는 파일만 받고, SSH 설정은 바뀌지 않음 |
설정을 해주는것이 귀찮기 때문에
ssh-copy-id를 하는것인 더 좋아보인다.