SSH 만 노출시키는 원격 서버가 있습니다. 다른 포트 (예 : 포트 3306의 데이터베이스)에서 실행되는 서비스가 있습니다.이 포트는 원격으로 액세스 할 수 없지만 서버 컨텍스트 ( localhost:3306
) 내에서 액세스 할 수 있습니다 .
사용 ssh -L
I은 할 수 원격 서버에 하나의 포트에 액세스 . 그러나 ssh / sshuttle 연결을 통해 이러한 모든 포트를 로컬 컴퓨터에 액세스 할 수있게하려면 어떻게해야합니까?
SSH 만 노출시키는 원격 서버가 있습니다. 다른 포트 (예 : 포트 3306의 데이터베이스)에서 실행되는 서비스가 있습니다.이 포트는 원격으로 액세스 할 수 없지만 서버 컨텍스트 ( localhost:3306
) 내에서 액세스 할 수 있습니다 .
사용 ssh -L
I은 할 수 원격 서버에 하나의 포트에 액세스 . 그러나 ssh / sshuttle 연결을 통해 이러한 모든 포트를 로컬 컴퓨터에 액세스 할 수있게하려면 어떻게해야합니까?
답변:
원격 서버 에서 자신을 가리키는 보조 IP 주소 ( 예 : 10.0.0.1)를 정의하십시오 . (127.0.0.1과 같은 방식)
로컬 머신에서 다음과 같이 sshuttle 연결을 작성하십시오.
sshuttle -r user@remote 10.0.0.1
# "user" is your username on the remote machine
# "remote" is the name or IP address of the remote machine
이제 10.0.0.1 주소에서 원격 서버에 액세스 할 수 있습니다. 10.0.0.1의 연결은 "자체"인 것으로 이해하기 때문에 해당 포트에서 모든 포트에 액세스 할 수 있습니다. (셔틀 연결을 닫 자마자 액세스가 중지됩니다.)
다음 명령으로이를 확인할 수 있습니다.
nmap remote # returns only ssh port
nmap 10.0.0.1 # returns all ports
이제 주소를 사용하여 데이터베이스에 연결할 수 있습니다 10.0.0.1:3306
. 예를 들어, MySQL 데이터베이스 인 경우 MySQL Workbench를 사용하여 연결할 수 있습니다.
이 접근 방식이 적합하면 sshoot 를 사용하여 sshuttle 연결을 관리하는 것이 좋습니다.