문제

나는 작은 로컬 네트워크입니다.만 하나의 기계에 사용할 수 있는 외부 세계(이하지 않은 쉽게 변경 가능).고 싶을 설정할 수 있게 그것을 같는 ssh 오지 않은 요청에 표준에 포트로 이동 다른 기계입니다.이것이 가능한가요?그렇다면,어떻게 합니까?

아,그리고 이러한 모든 시스템은 중 하나를 실행하는 우분투하거나 OS X.

도움이 되었습니까?

해결책

다른 방법을 사용하는 것이터넷을(일어나는 클라이언트 측에서).

당신이 할 것 ssh 다음과 같은 명령을 입력하십시오:

ssh -L 8022:myinsideserver:22 paul@myoutsideserver

을 연결하는 기계에서 액세스할 수 있는 외부(myoutsideserver)을 만들고 터널을 통해 ssh 연결 포트 22 일(표준 ssh 포트)에는 서버에서만에서 액세스할 수 있습니다.

당신은 할 것이라고 다른 ssh 다음과 같은 명령을 입력하십시오(최선 중 하나 여전히 연결되):

ssh -p 8022 paul@localhost

다음 방법을 사용하여 포트 8022 에 localhost 을 얻을 것이 터널을 통해 첫 번째 ssh 연결을 통해 myinsideserver.

뭔가가있을 수 있습니다 당신은에서 할 수 myoutsideserver 을 허용하는 전달 ssh 포트입니다.나는 두 번 확인합니다.

편집

Hmmm.Ssh ncursesw 에는 와이 말한다:**만 권한이 있는지 확인할 수 있습 앞으로 권한 있는 포트가 있습니다.**

는 종류의 의미는 첫 번째 ssh 연결 될 수 있습니다.어쩌면 다른 누군가를 명백하게 할 수 있습니다.

그것처럼 보이는 유저 권한을 필요가 없으로 전달트 (이 경우,8022) 지 않고 특권 포트은(22).감사에 대한 설명 마이크 Stone.

다른 팁

(이 예에서 나는 가정 포트 2222 갈 것입니다 당신의 내부 호스트.$externalip 및$internalip 은 ip 주소 또는 호스트 이름의 눈에 보이고 내부기,각각합니다.)

당신은 몇 가지 옵션을 선택할 수 있습니다 따라서 얼마나 영구적으로 당신이 원하는 프록시기:

  • 어떤 종류의 TCP 프록시합니다.리눅스에서 기본 아이디어는 들어오는 패킷을 처리할 변경의 목적지—즉prerouting 대상 NAT:

    iptables -t nat -A PREROUTING -p tcp -i eth0 -d $externalip --dport 2222 --sport 1024:65535 -j DNAT --to $internalip:22

  • SSH 을 사용하여 설정한 임시 포트 포워딩.여기에서,당신은 두 가지 옵션이 있습니다 다시:

    • 투명한 프록시는 클라이언트가 생각하는 당신의 눈에 보이는 호스트(포트 2222)입 를 사용하여 서버지 않는다는 것을 깨닫게가 있습니다.는 일부를 잃고 세밀하게 제어,당신은 편리(특히 사용할 경우 SSH 을 앞으로 VNC 또는 X11 모든 방법 안 host).

      • 에서 내부기: ssh -g -R 2222:localhost:22 $externalip
      • 그런 다음 외부 세계에서: ssh -p 2222 $externalip

      통지는"내가"및"외부"컴퓨터 하지 않는 동일합니다.할 수 있는 포트에 모든 방법을 앞으로 세계의 이 방법입니다.

    • 을 강제로 로그인하여 외부 기계가 처음.이것은 진정한"포워딩,"아니"프록시";그러나 기본적인 아이디어는 이것:당신은 사람들에 로그인하여 외부 기계(그래서 당신은에서 제어할 수 있는 사람에 로그인할 때,당신은 로그의 활동),그리고 거기에서 그들이 할 수 있 SSH 을 통해 내부입니다.그것은 소리를 싫지만,당신 설정 간단한 쉘 스크립트에 외부 기기와의 이름을 내부 호스트와 결합,password-less SSH 키 쌍 그것은 매우 간단한 사용자를 로그인합니다.그래서:

      • 외부 컴퓨터에서,당신은 간단한 스크립트 /usr/local/bin/internalhost 는 단순히 실행 ssh $internalip
      • 외부 세계에서 사용: ssh $externalip internalhost 일단 이들에게 첫 번째 머신,그들은 즉시 전달을 통해 내부의 하나입니다.

      또 다른 장점은 이 방법은 사람들이지 않을 얻을 키 관리 문제,실행 이후 두 SSH 서비스 중 하나에 IP 주소를 만들 것입니다 SSH 클라이언트는 화가입니다.

참고하려는 경우,SSH 서버지에 대해 걱정하고 싶 키,이렇

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

나는 별칭에서 내려들고"nossh",할 수 있도록 할 nossh somehost 고 그것을 모두 무시 키 오류가 있습니다.그냥을 이해하고 있는 무 정보 보안할 때 이를 수행,그래서 거기에는 이론적인 위험이 있습니다.

이러한 정보의에서 이야기 나에서 준 Barcamp 방콕에 대한 모든 멋진 SSH tricks.당신이 볼 수 있습니다 나의 슬라이드, 지만,나는 추천합 텍스트를 버전 로 S5 슬라이드는 종류의 버그가 있습니다.체크 아웃이라는 섹션"앞으로도:간단한 포트 포워딩은"대한 정보입니다.도 있습을 생성하는 방법에 대한 자세한 내용 SOCKS5 프록시와 OpenSSH.예,당신은 그렇게 할 수 있습니다.OpenSSH 은 굉장하다.

(마지막으로 수행하는 경우에는 많은 횡단으로 내부 네트워크,고려한 설정에 액세스를 제공합니다.그것은 무서운,그러나 OpenVPN 은 아주 간단하고 실행에 대한 모든 Os.말 것은 그것의 과잉 대 SSH;하지만 일단 시작을 포트 포워딩을 통해 귀하의 포트에 전달을 얻을 클라이언트 응용 프로그램 HTTP,또는 다른 재료에 일;는 경우 또는 당신의 많은 내부 호스트에 대해 걱정할 수 있 간단하고 유지할 수 있습니다.)

@마크 Biek

내가 가고 있었다고 말하는 것,하지만 당신은 입니다!어쨌든 난 그냥을 추가하고 싶었도 있다는 것-R 옵션:

ssh -R 8022:myinsideserver:22 paul@myoutsideserver

의 차이점은 무엇을 컴퓨터가 연결/습니다.보을 내게 보이 트릭 너무 오래 전에,그리고 그것은 확실히 정말 좋을 알고...우리는 뒤에 방화벽하고 필요하게 외부에 액세스하기...그는 주변에 의해 ssh-R 를 다른 컴퓨터에 액세스할 수 있는...다음 연결하는 기계에 전달 하였으로 기계 뒤에 방화벽,그래서 당신은 당신을 사용할 필요가-R 또는-L 기반으로 하는 기계에 있다고 있는 ssh-ing 니다.

또한,나는 확신을 사용하여 정기적인 사용으로 포트를 전달(이 경우 8022 포트)는 아래 제한된 범위(제가 생각하 1024,그러나 내가 잘못 될 수 있다),기 때문에 사람들은"예약"포트가 있습니다.문제가 되지 않습니다 당신은 그것을 전달하여"제한된"포트 때문에 포트가되지 않는 열린(기계가 그냥을 갖는 트래픽을 전송하여 그것은 터널을 통해,그것은 아무 지식의 터널)에 8022 포트가 열려있고 너무 제한됩니다.

편집:만 기억하고,터널이만 오픈 그래서 초기 ssh 열려 있는 경우,그래서 그 시간 또는 당신이 그것을 종료,터널에 종료됩니다.

당신이 사용할 수 있는 포트 Fowarding 니다.은 여기를 참조하십시오:

http://portforward.com/help/portforwarding.htm

이 지침에서 설정하는 방법 당신의 라우터 앞으로 포트에서 요청을 이 페이지:

http://www.portforward.com/english/routers/port_forwarding/routerindex.htm

에서 우분투를 설치할 수 있습니다 Firestarter 그리고 그것을 사용할 수의 앞으로 서비스 기능으로 전달하는 SSH 트래픽에서 금 표준은 포트에서 당신의 기계와 외부에 액세스 포트는 22 에서는 기계의 내부 네트워크입니다.

OS X 에서 편집할 수 있습니다 /etc/nat/natd.plist 파일을 사용 포트 fowarding.

없이 장난으로 방화벽,규칙을 설정할 수 있습~/.ssh/config 파일에 있습니다.

가정 10.1.1.1 은'게이트웨이'시스템 10.1.1.2 는'클라이언트'시스템이다.

Host gateway
  Hostname 10.1.1.1 
  LocalForward 8022 10.1.1.2:22 

Host client
  Hostname localhost
  Port 8022

할 수 있습 ssh 연결하는'게이트웨이를 통해':

ssh gateway

에서 또 다른 터미널로의 연결을 열고 클라이언트입니다.

ssh client
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top