가상 터미널을 통한 ssh 포트 전달


0

상황이 있습니다.

Mac에서 모든 작업을 수행합니다.

  1. 거기에 특정 리눅스 서버 ' server01 '에 대한 액세스를 제공하는'   다른 리눅스 서버 ' server02 의사 터미널을 통해

    그래서, ssh로 ' server02 ', 내 맥 에서이 일을 :

    ssh -t server01 'inline server02'
    
  2. 그런 다음 ' server01 '; 나는 그것을 입력하고   나를 ' server02 '. 자, 나는 ' server02 '터미널.

  3. ' server02 '내가 앉아있는 mysql 데이터베이스에 접근 할 수있다.   ' server03 '다음 mysql 명령을 사용하십시오 :

    mysql --host=server03 --port=4201 --user=myuser --password=mypass mydb
    
  4. 둘 다 ' server01 '도 아니다' server02 '또는 내 맥에 직접 SSH를 액세스 할 수있다' server03 '

이제, 나는 mysql에 ' server03 '내 Mac에서 일종의 포트 포워딩을 통해 직접. 그래서, 내 맥 터미널에 아래 명령을 입력하면, 그것은 mysql 데이터베이스에 나를 연결해야합니다 ' server03 ':

mysql --host=localhost --port=4201 --user=myuser --password=mypass mydb

그렇게 할 수있는 방법이 있습니까? 어떤 도움이라도 대단히 감사합니다.

답변:


0

포워딩 체인을 설정하십시오. 먼저 server1에 연결하고 server2에 SSH 연결을위한 전달을 추가하십시오.

mac% ssh -f -N -L 10022:server2:22 server1

(그만큼 -f -N 옵션을 사용하면 백그라운드에서 실행할 수 있습니다.)

그런 다음 전달을 통해 서버 2에 연결하고 서버 3에 MySQL 연결을 전달합니다.

mac% ssh -f -N -L 14201:server3:4201 -p 10022 -o HostkeyAlias=server2 localhost

(에 연결하고 있습니다. localhost 포트 10022, 이전 전달을 통해 server2에 연결할 수 있습니다. HostkeyAlias는 선택 사항이며 단지 편집증 일뿐입니다.)

마지막으로 서버 3에 연결 :

mac% mysql --host=localhost --port=14201 ...

답장을 보내 주셔서 감사합니다. 두 번째 명령을 실행 한 후에 오류가 발생했습니다. 여기에 오류가 있습니다 : 채널 2 : 오픈 실패 : 관리상의 금지 : 오픈 실패 ssh_exchange_identification : 원격 호스트에 의해 종료 된 연결 그냥 내 맥은 server3에 직접 SSH 액세스 권한이 없습니다
user3142747

이 오류를 어떻게 해결할 수 있을지 더 이상의 아이디어가 있습니까?
user3142747
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.