단일 SSH 연결을 사용하여 로컬과 같은 원격 서비스에 액세스

단일 SSH 연결을 사용하여 로컬과 같은 원격 서비스에 액세스

예를 들어 원격 호스트가 로컬 시스템에 있는 것처럼 주소를 지정하는 SSH 터널을 생성할 수 있습니까? 다음 의사 예시를 입력하세요.현지의원하는 효과를 얻으세요.

  • 데이터베이스 복사: mysqldump remote | mysql local또는mysqldump local | mysql remote
  • 원격 파일에 텍스트 추가:echo blah >> remote:file.txt
  • 원격 파일 변경:sed ... remote:file.txt
  • 원격 명령을 실행합니다:apk add blah

단일 연결이 불가능할 경우 이러한 작업을 수행하는 가장 편리한 방법은 무엇입니까?

답변1

원격 mysql에 액세스하려면 전달을 통해 localhost:12345를 사용할 수 있습니다.

ssh -Nf -L 12345:localhost:3306 user@remote

파일 작업의 경우 sshfs를 통해 원격 호스트를 마운트할 수 있습니다.

mkdir /tmp/remote
sshfs user@remote:/ /tmp/remote
echo blah >> /tmp/remote/file.txt
sed ... /tmp/remote/file.txt

원격 명령은 일반적으로 SSH를 통해 실행됩니다.

ssh user@remote command ....

단 하나의 연결로 모든 것을 할 수 있습니다이것을 ~/.ssh/config에 추가하면:

ControlMaster auto
ControlPath ~/.ssh/masters/%l%r@%h:%p

첫 번째 SSH 연결은 기본 연결이 되고 다음 연결은 이를 재사용합니다. 새로운 슬레이브 연결은 매우 빠르게 제공될 것입니다. 초기 키 교환 오버헤드 등이 없습니다.

관련 정보