| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- cups
- php
- shell
- Unix명령어
- 명령어
- 정규표현식
- js
- 리눅스명령어
- UnixCommand
- 사용자관리
- 자바스크립트
- linuxcommand
- 파일시스템
- Solaris
- coreutils
- UNIX
- bash
- sysadmin
- 시스템관리
- 유닉스명령어
- 터미널
- JavaScript
- environment
- terminal
- 유닉스
- 쉘스크립트
- tcsh
- linux
- PackageManagement
- 리눅스
Archives
- Today
- Total
ioerror
ssh 사용법 및 옵션 - 원격 호스트에 암호화된 터미널 세션으로 안전하게 접속하는 명령 본문
반응형

ssh - Secure Shell
네트워크를 통해 원격 시스템에 안전하게 접속하여 명령을 실행하거나 터미널 세션을 제어하는 유닉스 및 리눅스의 표준 네트워크 프로토콜 및 명령어이다. 기존의 평문 전송 방식인 Telnet, rsh, rlogin 등을 대체하기 위해 개발되었으며, 모든 데이터(인증 정보, 전송 데이터 등)를 강력하게 암호화하여 패킷 감청 및 중간자 공격(MITM)을 방지한다. 원격 서버 관리, 파일 전송 터널링, 포트 포워딩 등 시스템 및 네트워크 관리 환경 전반에서 필수적으로 사용된다.
1. ssh 용도
- 보안이 확보된 암호화 채널을 통해 원격 리눅스/유닉스 서버에 접속하여 관리 작업을 수행할 때 사용된다.
- SSH 키 기반 무암호 인증 및 포트 포워딩을 활용하여 CI/CD 배포 자동화 또는 로컬 서비스 터널링을 구축할 때 활용된다.
2. ssh 서식
ssh [OPTIONS] [user@]hostname [COMMAND]
3. ssh 옵션
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| -p port | 기본 포트(22) 대신 접속할 원격 SSH 서버의 포트를 지정한다. | 모든 유닉스/리눅스 |
| -i identity_file | 비밀번호 인증 대신 사용할 RSA/Ed25519 개인키(Private Key) 파일 경로를 지정한다. | 모든 유닉스/리눅스 |
| -v, -vv, -vvv | 상세 디버깅 메시지를 출력한다(단계별로 접속 문제를 진단할 때 사용). | 모든 유닉스/리눅스 |
| -L [bind_address:]port:host:hostport | 로컬 포트 포워딩을 설정하여 원격 네트워크의 서비스에 접근한다. | 모든 유닉스/리눅스 |
| -R [bind_address:]port:host:hostport | 리모트(원격) 포트 포워딩을 설정한다. | 모든 유닉스/리눅스 |
| -D [bind_address:]port | SOCKS 프록시 기능을 수행하는 동적(Dynamic) 포트 포워딩을 설정한다. | 모든 유닉스/리눅스 |
| -N | 원격 명령어 실행이나 대화형 셸 접속을 하지 않고 터널링 전용으로 세션을 유지한다. | 모든 유닉스/리눅스 |
| -f | SSH 명령을 백그라운드로 실행하도록 전환한다. | 모든 유닉스/리눅스 |
| -C | 전송되는 모든 데이터를 압축하여 인프라 대역폭을 절약한다. | 모든 유닉스/리눅스 |
| -o option | ssh_config 설정 파일의 옵션을 CLI 실행 시 직접 지정한다 (e.g. -o StrictHostKeyChecking=no). | OpenSSH |
| -X / -Y | 원격 GUI 프로그램 화면을 로컬 디스플레이로 가져오는 X11 포워딩을 활성화한다. | OpenSSH |
| -t | 원격에서 대화형 프로그램 실행이 가능하도록 의도적으로 가상 터미널(pseudo-tty)을 할당한다. | OpenSSH |
Bash
# 특정 포트 및 개인키를 지정하여 원격 서버 접속
ssh -i ~/.ssh/my_key.pem -p 2222 admin@remote.example.com
# 로컬 8080 포트를 원격 내부에 위치한 DB 서버 5432 포트로 터널링
ssh -f -N -L 8080:10.0.0.5:5432 admin@remote.example.com
# 원격 서버 접속 없이 단일 명령 실행 및 결과 수신
ssh user@remote.example.com "df -h /"
# Filesystem Size Used Avail Use% Mounted on
# /dev/sda1 50G 18G 30G 38% /
- Filesystem ... /dev/sda1: 원격 서버의 대화형 셸에 완전히 진입하지 않고 df -h / 명령어 결과만 즉시 받아 출력한 표준 출력 결과이다.
4. ssh 특이사항(유의사항)
- 접속 대상 서버의 공개키가 로컬 호스트의 ~/.ssh/known_hosts 파일에 저장된 정보와 일치하지 않을 경우 'WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!' 에러가 발생하며 접속이 차단된다. 서버 재설치 등으로 인한 정상 변경일 경우 해당 라인을 삭제해주어야 한다.
- 보안 강화를 위해 비밀번호 방식보다는 ssh-keygen 및 ssh-copy-id를 이용한 PKI 기반 asymmetric key 인증 방식을 사용하는 것이 권장된다.
- 타임아웃으로 인한 자동 세션 끊김을 방지하려면 로컬의 ~/.ssh/config에 ServerAliveInterval 60 옵션을 추가하여 주기적으로 핑 패킷을 보낼 수 있다. OpenSSH
관련 명령어들
- ssh-keygen: SSH 인증에 사용되는 공개키/개인키 쌍을 생성한다. OpenSSH
- ssh-copy-id: 생성한 공개키를 원격 서버의 ~/.ssh/authorized_keys 파일에 등록한다. OpenSSH
- scp: SSH 프로토콜을 기반으로 암호화된 파일 복사를 수행한다.
- sftp: SSH 프로토콜 기반의 대화형 보안 파일 전송 프로그램이다.
- sshd: 원격 접속 요청을 수신하는 SSH 서버 데몬 프로세스이다. OpenSSH
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| su 사용법 및 옵션 - 다른 사용자 계정으로 사용자를 전환하는 명령 (0) | 2026.07.30 |
|---|---|
| slogin 사용법 및 옵션 - 원격 호스트에 암호화된 터미널 세션으로 안전하게 접속하는 명령 (0) | 2026.07.30 |
| split 사용법 및 옵션 - 대용량 파일을 지정한 크기나 라인 수 단위로 분할하는 명령 (0) | 2026.07.30 |
| source 사용법 및 옵션 - 현재 셸 환경에서 스크립트 파일을 직접 읽어 실행하는 명령 (0) | 2026.07.30 |
| sort 사용법 및 옵션 - 텍스트 파일의 행 단위 데이터를 정렬하고 중복을 제거하는 명령 (1) | 2026.07.29 |
Comments