ToolStack
EN

SSH 명령어 모음

접속·키 생성·SCP 전송·포트 포워딩·config 설정

데이터는 서버로 전송되지 않습니다 — 모든 처리는 브라우저 안에서만 서버 전송 0건

01

기본 접속

  • ssh user@host

    원격 서버에 SSH로 접속합니다

  • ssh -p 2222 user@host

    포트를 지정해서 접속합니다 (기본 22)

  • ssh -i ~/.ssh/id_rsa user@host

    특정 개인키 파일을 지정해서 접속합니다

  • ssh -v user@host

    디버그 정보를 출력하며 접속합니다 (-vvv는 더 상세)

  • ssh user@host "ls -la"

    원격 서버에서 명령어 한 줄을 실행하고 종료합니다

02

키 생성·관리

  • ssh-keygen -t ed25519 -C "comment"

    Ed25519 키 쌍을 생성합니다 (권장 알고리즘)

  • ssh-keygen -t rsa -b 4096 -C "comment"

    RSA 4096비트 키 쌍을 생성합니다

  • ssh-copy-id user@host

    공개키를 원격 서버에 자동으로 등록합니다

  • cat ~/.ssh/id_ed25519.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

    수동으로 공개키를 원격에 등록합니다

  • ssh-keygen -R host

    known_hosts에서 특정 호스트 정보를 삭제합니다 (키 변경 후)

03

ssh-agent · 키 추가

  • eval "$(ssh-agent -s)"

    ssh-agent를 시작하고 환경변수를 설정합니다

  • ssh-add ~/.ssh/id_ed25519

    ssh-agent에 개인키를 추가합니다

  • ssh-add -l

    ssh-agent에 등록된 키 목록을 출력합니다

  • ssh-add -d ~/.ssh/id_ed25519

    ssh-agent에서 특정 키를 제거합니다

04

파일 전송 (SCP · SFTP)

  • scp 파일 user@host:/경로/

    로컬 파일을 원격 서버로 업로드합니다

  • scp user@host:/경로/파일 ./로컬경로

    원격 파일을 로컬로 다운로드합니다

  • scp -r 폴더명 user@host:/경로/

    폴더 전체를 재귀적으로 전송합니다

  • scp -P 2222 파일 user@host:/경로/

    SCP 포트를 지정합니다 (-P 대문자 사용)

  • sftp user@host

    SFTP 대화형 세션을 시작합니다 (get/put으로 파일 전송)

  • rsync -avz 폴더/ user@host:/경로/

    변경된 파일만 효율적으로 동기화합니다 (scp 대안)

05

포트 포워딩 · 터널링

  • ssh -L 8080:localhost:80 user@host

    로컬 8080 → 원격 80포트로 포워딩합니다 (로컬 포워딩)

  • ssh -R 8080:localhost:3000 user@host

    원격 8080 → 로컬 3000포트로 포워딩합니다 (원격 포워딩)

  • ssh -D 1080 user@host

    로컬 SOCKS5 프록시를 생성합니다 (동적 포워딩)

  • ssh -N -f -L 8080:localhost:80 user@host

    백그라운드에서 포트 포워딩만 실행합니다

06

config 파일 설정

~/.ssh/config 에 작성하면 ssh 별칭(alias)으로 간편하게 접속할 수 있습니다

  • Host myserver HostName 1.2.3.4 User ubuntu IdentityFile ~/.ssh/id_ed25519 Port 22

    서버 별칭을 설정합니다 → ssh myserver 로 접속

  • Host * ServerAliveInterval 60 ServerAliveCountMax 3

    60초마다 연결 유지 패킷을 전송합니다 (접속 끊김 방지)

  • ssh myserver

    config에 정의된 별칭으로 접속합니다

SSH, 키 기반 인증으로 안전하게 쓰세요

SSH는 원격 서버 접속과 파일 전송의 표준 도구입니다. 비밀번호 인증보다 키 기반 인증이 훨씬 안전하므로, ssh-keygen으로 Ed25519 키 쌍을 생성하고 ssh-copy-id로 공개키를 등록해두세요. ~/.ssh/config에 자주 쓰는 서버 별칭을 등록하면 ssh 서버명 한 줄로 접속할 수 있습니다.

포트 포워딩은 방화벽 뒤의 서비스에 안전하게 접근하거나 로컬 개발 서버를 외부에 노출할 때 유용합니다. scp보다 rsync가 대용량 파일 전송에 효율적입니다. -avz 옵션은 아카이브 모드·압축·상세 출력을 함께 활성화합니다.

자주 묻는 질문

처음 접속할 때 "authenticity of host can't be established" 메시지가 납니다.
처음 접속하는 서버의 호스트 키가 known_hosts에 없을 때 나타나는 정상적인 경고입니다. 서버 주소를 확인한 뒤 yes를 입력하면 ~/.ssh/known_hosts에 등록됩니다. 스크립트 자동화가 필요하면 -o StrictHostKeyChecking=no 옵션을 사용할 수 있지만 보안 리스크를 인지하고 사용하세요.
비밀번호 없이 SSH 접속하려면?
ssh-keygen으로 키 쌍을 생성한 뒤, ssh-copy-id user@host 로 공개키를 서버에 등록하면 됩니다. 이후에는 비밀번호 없이 개인키로만 접속할 수 있습니다. ~/.ssh/config에 IdentityFile을 지정해두면 더 편리합니다.
접속이 자꾸 끊깁니다.
~/.ssh/config 에 ServerAliveInterval 60과 ServerAliveCountMax 3을 추가하면 60초마다 연결 유지 패킷을 보내서 타임아웃을 방지합니다. 서버 측 /etc/ssh/sshd_config의 ClientAliveInterval 설정과 함께 조정하세요.

관련 툴