TOML 설정으로 포트 포워딩을 정의하고 열고 닫을 수 있는 Go 기반 CLI SSH 터널 관리자입니다.
pahaz/sshtunnel
paramiko를 통해 로컬 포트를 원격 또는 사설 호스트의 서비스로 포워딩하는 SSH 터널용 Python 라이브러리 및 CLI입니다.
- 스타
- 1,305
- 포크
- 201
- 열린 이슈
- 71
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
sshtunnel을 사용하면 Python 코드나 명령줄에서 SSH 포트 포워딩을 설정할 수 있습니다. 웹 앱이나 데이터베이스 같은 서비스에 SSH 포트로만 접속할 수 있거나, SSH만 열려 있는 게이트웨이 뒤에 사설 서버가 있는 경우 유용합니다.
주요 진입점은 SSHTunnelForwarder이며, start()/stop()으로 사용하거나 open_tunnel을 통해 컨텍스트 매니저로 사용할 수 있습니다. 터널이 시작되면 애플리케이션이 접속할 local_bind_port가 열립니다. 인증 방식으로는 비밀번호, 선택적 암호 문구가 설정된 개인 키 파일, SSH agent의 키, ~/.ssh/config에 지정된 키를 지원합니다. 한 터널을 다른 터널의 로컬 포트에 연결하면 여러 홉을 거치는 터널을 구성할 수 있습니다.
프로젝트에는 SSH 인증 정보, 원격 바인드 주소, 로컬 바인드 주소를 인자로 받는 sshtunnel CLI도 포함되어 있습니다. 순수 Python으로 구현되어 있으며 Windows와 Unix 계열 시스템 모두에서 실행됩니다.
핵심 기능
- 01SSH로만 접근할 수 있는 원격 서비스에 로컬 포트를 포워딩합니다.
- 02프로그램 코드나 with 문을 사용해 터널을 시작하고 중지합니다.
- 03비밀번호, 개인 키, SSH agent 인증을 지원합니다.
- 04여러 터널을 연결해 게이트웨이 뒤의 호스트에 접근합니다.
- 05간편한 포트 포워딩을 위한 명령줄 인터페이스를 제공합니다.
- 06~/.ssh/config에서 호스트와 설정을 읽습니다.
활용 사례
- SSH 포트만 열려 있는 서버의 데이터베이스나 웹 서비스에 연결합니다.
- 테스트 스크립트에서 bastion 또는 점프 서버를 통해 사설 호스트에 접근합니다.
- 스크립트에서 Vagrant VM 포트 같은 로컬 개발 데이터베이스를 포워딩합니다.
- 원격 리소스가 필요한 CI 또는 데이터 파이프라인에서 터널 설정을 자동화합니다.
빠른 시작
- 1
PyPI에서 패키지 설치하기
pip install sshtunnel - 2
SSHTunnelForwarder를 사용해 Python에서 터널을 열고 server.local_bind_port 읽기
포함된 컬렉션
토픽
자주 묻는 질문
- sshtunnel은(는) 무엇인가요?
- paramiko를 통해 로컬 포트를 원격 또는 사설 호스트의 서비스로 포워딩하는 SSH 터널용 Python 라이브러리 및 CLI입니다. sshtunnel을 사용하면 Python 코드나 명령줄에서 SSH 포트 포워딩을 설정할 수 있습니다. 웹 앱이나 데이터베이스 같은 서비스에 SSH 포트로만 접속할 수 있거나, SSH만 열려 있는 게이트웨이 뒤에 사설 서버가 있는 경우 유용합니다.
- sshtunnel은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- sshtunnel은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- sshtunnel은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. sshtunnel의 마지막 커밋은 2026년 11월 5일입니다.
- sshtunnel은(는) 어디에 사용할 수 있나요?
- SSH 포트만 열려 있는 서버의 데이터베이스나 웹 서비스에 연결합니다. 테스트 스크립트에서 bastion 또는 점프 서버를 통해 사설 호스트에 접근합니다. 스크립트에서 Vagrant VM 포트 같은 로컬 개발 데이터베이스를 포워딩합니다. 원격 리소스가 필요한 CI 또는 데이터 파이프라인에서 터널 설정을 자동화합니다.
- sshtunnel는 어떻게 설치하나요?
- PyPI에서 패키지 설치하기: pip install sshtunnel SSHTunnelForwarder를 사용해 Python에서 터널을 열고 server.local_bind_port 읽기
- sshtunnel은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pahaz/sshtunnel
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
여러 벤더의 네트워크 장비에 SSH CLI로 간편하게 연결해 show 명령을 실행하고 설정을 변경하는 Python 라이브러리입니다.
Tailscale 계정이나 제어 플레인 없이 WireGuard 데이터 플레인으로 두 기기를 연결하는 netcat 스타일 CLI 및 Go 라이브러리
~/.ssh/config에 정의된 SSH 호스트를 탐색하고 연결하며 관리하는 터미널 TUI입니다.
로컬 TCP 포트를 원격 서버로 연결해 localhost 서비스를 공개 인터넷에서 이용하게 하는 간결한 Rust CLI입니다.
데이터베이스, SSH, SFTP, 터미널, 원격 데스크톱, 모니터링, Markdown 노트와 AI 에이전트를 제공하는 네이티브 Rust 데스크톱 작업 공간입니다.