← 홈

🔐SSH & GPG

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

🔑 SSH 기본

🔗 연결

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" 수동 키 복사

🤖 SSH 에이전트

⚙️ 에이전트 명령

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 터널

🔀 포트 포워딩

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 옵션

⚙️ SSH 설정

📝 ~/.ssh/config 예제

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 & SFTP

📋 SCP (보안 복사)

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 (보안 FTP)

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 기본

🗝️ 키 생성

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 작업

🔒 암호화 & 복호화

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 서명

🔀 Git과 GPG

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 태그 서명 검증

🔑 SSH 서명 (Git 2.34+)

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 허용된 서명자 파일 설정

💡 팁 & 모범 사례

유용한 팁

  • Ed25519 사용: SSH에 Ed25519 키 선호 (빠름, 안전)
  • 암호 보호: 개인 키에 항상 암호 사용
  • SSH 에이전트: 반복 암호 입력 방지를 위해 ssh-agent 사용
  • 목적별 키: 서비스마다 다른 키 사용
  • 키 백업: 개인 키와 GPG 폐기 인증서 안전하게 백업
  • 폐기 인증서: GPG 폐기 인증서 생성 및 저장
  • 키 만료: GPG 키에 만료 날짜 설정
  • SSH 설정: 호스트 별칭에 ~/.ssh/config 사용