나는 때때로 홈 네트워크 내부 또는 외부에 있을 수 있는 노트북을 가지고 있습니다. 네트워크 내의 컴퓨터에 SSH로 연결해야 하는 경우 연결은 매우 간단합니다.
localhost $ ssh machinelearning
다음에서 기기에 액세스하려고 하면외부내 네트워크를 사용하려면 라우터에 연결한 다음 그곳에서 SSH를 연결해야 합니다.
localhost $ ssh router.mytotallyuniquedomain.com
router $ ssh machinelearning
후자의 명령을 실행하는 단축키가 있었던 것으로 기억하는데 ~/.ssh/config
, 지금은 그것이 무엇인지 기억이 나지 않습니다.
다음과 같이 여러 호스트 이름이나 연결 유형을 제공할 수 있는 방법이 있습니까?
$ ssh machinelearning
machinelearning
SSH는 먼저 로컬 네트워크의 호스트 에 연결을 시도한 다음 router.mytotallyuniquedomain.com
긴 호스트 이름을 입력하지 않고도 터널링을 시도합니까?
답변1
방법 #1 - ProxyCommand 및 netcat
나는 $HOME/.ssh/config
이것을 촉진하기 위해 이 설정을 사용합니다.
Host intserver1-o intserver2-o intserver3-o
ProxyCommand ssh [email protected] nc `echo %h|sed 's/-o//'` %p
그러면 ssh intserver2-o
어디에서나 이 내부 서버에 액세스할 수 있습니다. 집에 있을 때는 LAN을 사용하세요 ssh intserver1
.
노트:위 팁 nc
에서는 extserver1에 netcat( )이 설치되어 있어야 합니다.
방법 #2 - 중첩된 SSH
또는 다음 방법을 사용할 수 있습니다.
$ ssh -t -l gatewayuser gatewayserver "ssh -l serveruser internalserver"
기본적으로 이 방법 내에 SSH 호출을 중첩합니다.
방법 #3 - ProxyCommand 및 ssh -W
최신 버전의 SSH(5.4+)의 경우 스위치를 거치는 ssh
대신 사용할 수 있습니다 .nc
-W
Host TARGETHOST
ProxyCommand ssh -W %h:%p PROXYHOST
& 는 호스트 이름 포트에 대한 매크로 %h
입니다 .%p
TARGETHOST