C.W.K.
Stream
Lesson 01 of 08 · published

SSH 기초 — 키와 agent

~13 min · ssh, ed25519, ssh-agent

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

왜 비밀번호 말고 키?

SSH 키가 비밀번호를 암호학적 키쌍으로 대체. private 키는 본인 머신에, public 키는 로그인할 모든 서버에. 서버는 private 키를 보지 않고도 네가 그걸 들고 있다는 걸 확인. 더 빠르고 안전하고 스크립트 가능.

생성

ssh-keygen -t ed25519 -C 'me@laptop'

Ed25519 가 모던 기본 — 작고 빠르고 안전. ed25519 모르는 옛 시스템엔 RSA 4096. 기본 경로 (~/.ssh/id_ed25519) 수락 후 passphrase 설정.

public 키를 서버에 복사

ssh-copy-id user@server      # 원격 ~/.ssh/authorized_keys 에 append
# macOS 에 ssh-copy-id 없으면
cat ~/.ssh/id_ed25519.pub | ssh user@server 'mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys'

ssh-agent — passphrase 한 번만

agent 가 unlock 된 private 키를 메모리에 캐시. 세션당 passphrase 한 번 치면 ssh / scp / git 다 자동으로 키 사용.

eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519   # macOS — Keychain 저장
ssh-add -l                                       # 로드된 키 목록

macOS 는 agent 자동 시작. ~/.ssh/configHost * 블록에 UseKeychain yes + AddKeysToAgent yes 넣으면 passphrase 가 일회성 잔소리로 끝.

권한

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519 ~/.ssh/config
chmod 644 ~/.ssh/id_ed25519.pub ~/.ssh/known_hosts

더 헐거우면 ssh 가 키 거부.

Code

키 생성 + 배포·bash
ssh-keygen -t ed25519 -C 'me@$(hostname -s)'
# Verify
cat ~/.ssh/id_ed25519.pub
# Push to a server
ssh-copy-id user@server.example.com
# Test
ssh user@server.example.com 'echo ok'
macOS 친화적 ssh config 블록·bash
cat >> ~/.ssh/config <<'EOF'
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentitiesOnly yes
  ServerAliveInterval 60
EOF
chmod 600 ~/.ssh/config

External links

Exercise

키 생성: ssh-keygen -t ed25519 -C 'me@laptop'. .ssh/config 에 host-* 블록 추가. ssh-add --apple-use-keychain ~/.ssh/id_ed25519 실행. 접근 가능한 서버에서 ssh user@server 로 테스트.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.