![단일 SSH 연결을 사용하여 로컬과 같은 원격 서비스에 액세스](https://linux55.com/image/94990/%EB%8B%A8%EC%9D%BC%20SSH%20%EC%97%B0%EA%B2%B0%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%A1%9C%EC%BB%AC%EA%B3%BC%20%EA%B0%99%EC%9D%80%20%EC%9B%90%EA%B2%A9%20%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90%20%EC%95%A1%EC%84%B8%EC%8A%A4.png)
예를 들어 원격 호스트가 로컬 시스템에 있는 것처럼 주소를 지정하는 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 연결은 기본 연결이 되고 다음 연결은 이를 재사용합니다. 새로운 슬레이브 연결은 매우 빠르게 제공될 것입니다. 초기 키 교환 오버헤드 등이 없습니다.