본문 바로가기
목차
utils

ssh 사용 방법

by ds31x 2025. 8. 5.
728x90
반응형

https://www.ssh.com/academy/ssh/tunneling

 

SSH는 Secure SHell의 약자로 암호화된 보안 연결을 통해 원격 서버에 안전하게 접속하고 명령을 실행할 수 있게 해주는 네트워크 프로토콜 및 이를 사용하는 클라이언트 및 앱을 가리킴.


Secure SHell의 사용법.

일반적으로 다음과 같이 ssh로 접속함.

ssh -i ~/.ssh/id_rsa ubuntu@192.xxx.xxx.xxx
  • ubuntu : 계정명을 가리킴(접속하는 계정을 기재). cloud장비들은 대부분 os이름이 계정명.
  • 192.xxx.xxx.xxx : public ip address. 또는 서버 도메인명 (여기서 x는 숫자임)
  • -i : IdentityFile 로 ssh의 비밀키 파일을 지정.
  • -o IdentitiesOnly=yes : -i로 지정된 키만 사용.
    • 이 옵션이 없고, ssh-agent가 동작하는 환경이라면 agent의 다른 키들도 시도함.
    • 이 옵션이 없으면 의도치않게 다른 키에 의해 접속될 수 있으니 주의 할것.
  •  -o 는 개별 설정 옵션을 지정함. 
    • ssh -i ~/.ssh/id_rsa -o "PasswordAuthentication=no" user@server.com : 패스워드 인증 비활성화 (공개키 인증만 가능)
    • ssh -i ~/.ssh/id_rsa -o "IdentitiesOnly=yes" user@server.com : -i 로 지정한 키 외에는 사용하지 않음.
  • -p 22 : ssh포트 지정

포트 포워딩(-L, -R) 및 백그라운드 실행(-f)

  • -L 8080:localhost:80 : ssh 클라이언트가 실행되는 컴퓨터의 8080포트를 접속할 서버의 80포트로 연결
    • Local Port Forwarding 으로 로컬의 포트로 나가는 것이 원격의 지정포트를 통해 나가게 됨(forwarding)
    • ssh -L 8080:localhost:80 user@remote-server.com 은 다음과 같음
    • ssh -L 8080:remote-server.com:80 user@remote-server.com
    • ssh -L 8080:127.0.0.1:80 user@remote-server.com
  • -R 8080:localhost:3000 : 서버의 3000번으로 들어오는 패킷이 ssh 클라이언트가 실행되는 컴퓨터의 8080로.
    • Remote Port Forwarding 으로 ssh서버의 특정 포트로 접속이 ssh 클라이언트 장비의 특정 포트로 들어옴.
    • ssh -R 8080:localhost:3000 user@remote-server.com 의 흐름은 다음과 같음
    • 3자 > remote-server.com:3000 > ssh turnnel > ssh-client장비:8080
  • -N -f -L 8000:web-server.com:80 ssh-server.com
    • 내컴퓨터 > SSH Turnnel > ssh-server.com -> 네트워크 -> web-server.com
      • web-server.com과 ssh-server.com은 같은 네트워크 에 존재.
    • 내컴퓨터의 8000으로 오는 모든 트래픽을 web-server.com의 80을 전달.
    • -f 로 백그라운드dptj 실행되며
    • -N 을 통해 명령어는 전송안되고 터널링만 사용됨.
    • 이 브라우저를 열고 localhost:8000으로 연결시 web-server.com에 연결됨.

SSH 터널링으로 GUI앱 실행하기

  • -X -C user@x-server.com
    • -X 는 X11 포워딩으로 GUI앱을 실행케 해줌 (권장되는 방식이나 보안을 위해 일부 기능이 제한됨)
    • -Y 는 원격서버가 로컬의 X11에 완전 접근하므로 거의 모든 기능이 수행가능하나 보안 위험이 존재.
    • -C 는 압축 옵션.

같이 보면 좋은 자료들

2023.12.27 - [utils/git and github] - [ssh-keygen] ssh 관련 private key와 public key 생성하기.

 

[ssh-keygen] ssh 관련 private key와 public key 생성하기.

ssh (secure shell)ssh는 secure shell의 약자로 네트워크 상에서 암호화된 통신을 위한 프로토콜 (및 이를 구현한 프로그램)을 가르킴. 주로 원격지의 장비에 보안이 보장된 접속을 제공하며 이를 위해

ds31x.tistory.com

2025.07.21 - [utils/git and github] - SSH Agent 사용법

 

SSH Agent 사용법

SSH Agent는 사용자 로그인 session(세션) 동안 ssh 키에 대한 암호를 유지하여 사용자가 한번만 암호를 입력하게 해줌.macOS SSH Agent 특징macOS는 SSH Agent가 기본적으로 launchd를 통해 자동 실행 됨Keychain과

ds31x.tistory.com

2024.12.26 - [Linux] - [linux] scp: Secure Copy Protocol

 

[linux] scp: Secure Copy Protocol

0.scp란?scp 는 파일을 한 컴퓨터에서 다른 컴퓨터로 안전하게 복사하기 위한 명령어 및 프로토콜SSH(Secure Shell) 프로토콜을 사용하여 데이터 전송 중에 암호화를 제공1.로컬로 특정 파일 복사해오

ds31x.tistory.com


 

728x90