
로컬 시스템에 있는 것처럼 원격 호스트의 주소를 지정하기 위해 단일 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 연결은 다음 연결에서 다시 사용하는 마스터가 됩니다. 새로운 슬레이브 연결은 매우 빠르게 제공됩니다. 초기 키 교환 오버헤드 등이 없습니다.