ssh user@host | 원격 호스트 연결 |
ssh user@host -p 2222 | 특정 포트로 연결 |
ssh -i ~/.ssh/key.pem user@host | 키 파일로 연결 |
ssh -v user@host | 상세 모드 (디버그) |
ssh -vvv user@host | 최대 상세 모드 |
ssh user@host "command" | 원격에서 명령 실행 |
ssh -t user@host "command" | 의사 터미널 강제 |
ssh -N user@host | 명령 없음 (터널용) |
ssh-keygen | SSH 키 쌍 생성 |
ssh-keygen -t ed25519 -C "email@example.com" | Ed25519 키 생성 |
ssh-keygen -t rsa -b 4096 | 4096비트 RSA 키 생성 |
ssh-keygen -f ~/.ssh/mykey | 키 파일명 지정 |
ssh-keygen -p -f ~/.ssh/id_rsa | 키 암호 변경 |
ssh-keygen -y -f ~/.ssh/id_rsa | 공개 키 표시 |
ssh-keygen -l -f ~/.ssh/id_rsa.pub | 키 지문 표시 |
ssh-keygen -R hostname | known_hosts에서 호스트 제거 |
ssh-copy-id user@host | 공개 키를 원격에 복사 |
ssh-copy-id -i ~/.ssh/mykey.pub user@host | 특정 키 복사 |
cat ~/.ssh/id_rsa.pub | ssh user@host "cat >> ~/.ssh/authorized_keys" | 수동 키 복사 |
eval "$(ssh-agent -s)" | SSH 에이전트 시작 |
ssh-add | 기본 키를 에이전트에 추가 |
ssh-add ~/.ssh/id_rsa | 특정 키 추가 |
ssh-add -l | 에이전트의 키 나열 |
ssh-add -L | 공개 키 나열 |
ssh-add -d ~/.ssh/id_rsa | 특정 키 제거 |
ssh-add -D | 모든 키 제거 |
ssh-add -t 3600 ~/.ssh/id_rsa | 타임아웃으로 키 추가 (1시간) |
ssh -A user@host | 에이전트를 원격으로 전달 |
ssh -L 8080:localhost:80 user@host | 로컬 포트 포워드 |
ssh -L 8080:remote:80 user@host | 원격 호스트로 포워드 |
ssh -R 8080:localhost:80 user@host | 원격 포트 포워드 |
ssh -D 1080 user@host | SOCKS 프록시 |
ssh -L 3306:dbhost:3306 user@jumphost | 점프를 통한 데이터베이스 터널 |
ssh -fNL 8080:localhost:80 user@host | 백그라운드 터널 |
ssh -J jumphost user@target | 점프 호스트를 통해 연결 |
ssh -J user1@jump1,user2@jump2 user@target | 여러 점프 호스트 |
ssh -o ProxyJump=jumphost user@target | ProxyJump 옵션 |
Host myserver
HostName 192.168.1.100
User admin
Port 22
IdentityFile ~/.ssh/mykey | 기본 호스트 설정 |
Host *
AddKeysToAgent yes
IdentitiesOnly yes
ServerAliveInterval 60 | 전역 기본값 |
Host bastion
HostName jump.example.com
User admin
Host internal
HostName 10.0.0.5
ProxyJump bastion | 점프 호스트 설정 |
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_key | GitHub SSH 설정 |
chmod 700 ~/.ssh | SSH 디렉토리 권한 |
chmod 600 ~/.ssh/id_rsa | 개인 키 권한 |
chmod 644 ~/.ssh/id_rsa.pub | 공개 키 권한 |
chmod 600 ~/.ssh/config | 설정 파일 권한 |
chmod 600 ~/.ssh/authorized_keys | 인증된 키 권한 |
scp file.txt user@host:/path/ | 원격으로 파일 복사 |
scp user@host:/path/file.txt . | 원격에서 파일 복사 |
scp -r folder/ user@host:/path/ | 디렉토리 재귀 복사 |
scp -P 2222 file.txt user@host:/path/ | 특정 포트로 복사 |
scp -i ~/.ssh/key file.txt user@host:/path/ | 키 파일로 복사 |
scp user1@host1:/path/file user2@host2:/path/ | 원격 간 복사 |
sftp user@host | SFTP 세션 시작 |
ls / lls | 원격/로컬 파일 나열 |
cd / lcd | 원격/로컬 디렉토리 변경 |
get file.txt | 파일 다운로드 |
put file.txt | 파일 업로드 |
mget *.txt | 여러 파일 다운로드 |
mput *.txt | 여러 파일 업로드 |
mkdir / rmdir | 디렉토리 생성/삭제 |
bye / quit / exit | SFTP 종료 |
gpg --full-generate-key | 키 생성 (대화형) |
gpg --gen-key | 키 생성 (빠름) |
gpg --list-keys | 공개 키 나열 |
gpg --list-secret-keys | 개인 키 나열 |
gpg --list-keys --keyid-format long | 긴 키 ID 표시 |
gpg --fingerprint user@example.com | 키 지문 표시 |
gpg --export -a "Name" > public.key | 공개 키 내보내기 |
gpg --export-secret-keys -a "Name" > private.key | 개인 키 내보내기 |
gpg --import public.key | 공개 키 가져오기 |
gpg --import private.key | 개인 키 가져오기 |
gpg --delete-key "Name" | 공개 키 삭제 |
gpg --delete-secret-key "Name" | 개인 키 삭제 |
gpg --edit-key "Name" | 키 편집 (대화형) |
gpg -e -r recipient file.txt | 수신자를 위해 암호화 |
gpg -e -r email@example.com file.txt | 이메일로 암호화 |
gpg -c file.txt | 대칭 암호화 |
gpg -d file.txt.gpg | 파일 복호화 |
gpg -d file.txt.gpg > file.txt | 파일로 복호화 |
gpg -e -a -r recipient file.txt | ASCII 형태로 암호화 |
gpg -s file.txt | 파일 서명 (압축) |
gpg --clearsign file.txt | 일반 텍스트 서명 |
gpg -b file.txt | 분리된 서명 |
gpg --verify file.txt.sig file.txt | 분리된 서명 검증 |
gpg --verify file.txt.gpg | 서명된 파일 검증 |
gpg -se -r recipient file.txt | 서명 및 암호화 |
gpg --keyserver keyserver.ubuntu.com --send-keys KEYID | 키 서버에 업로드 |
gpg --keyserver keyserver.ubuntu.com --recv-keys KEYID | 키 서버에서 다운로드 |
gpg --keyserver keyserver.ubuntu.com --search-keys email@example.com | 키 검색 |
gpg --refresh-keys | 모든 키 새로고침 |
git config --global user.signingkey KEYID | 서명 키 설정 |
git config --global commit.gpgsign true | 커밋 자동 서명 |
git config --global gpg.program gpg | GPG 프로그램 설정 |
git commit -S -m "message" | 커밋 서명 |
git tag -s v1.0 -m "message" | 태그 서명 |
git log --show-signature | 커밋 서명 표시 |
git verify-commit HEAD | 커밋 서명 검증 |
git verify-tag v1.0 | 태그 서명 검증 |
git config --global gpg.format ssh | 서명에 SSH 사용 |
git config --global user.signingkey ~/.ssh/id_ed25519.pub | SSH 서명 키 설정 |
git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers | 허용된 서명자 파일 설정 |