여러 개의 SSH 호스트 별칭을 가질 수 있습니까?

여러 개의 SSH 호스트 별칭을 가질 수 있습니까?

나는 때때로 홈 네트워크 내부 또는 외부에 있을 수 있는 노트북을 가지고 있습니다. 네트워크 내부의 컴퓨터에 SSH로 연결해야 하는 경우 연결은 매우 간단합니다.

localhost $ ssh machinelearning

다음에서 기기에 액세스하려고 할 때밖의내 네트워크의 라우터에 연결한 다음 거기에서 SSH를 연결해야 합니다.

localhost $ ssh router.mytotallyuniquedomain.com
router $ ssh machinelearning

에 후자의 명령을 수행하기 위한 단축키가 있다는 것을 기억 ~/.ssh/config하지만 지금은 그것이 무엇인지 기억이 나지 않습니다.

이 작업을 수행할 때 여러 호스트 이름이나 연결 유형을 제공할 수 있는 방법이 있습니까?

$ ssh machinelearning

SSH는 먼저 로컬 네트워크의 호스트에 연결을 시도한 다음 긴 호스트 이름을 입력할 필요 없이 를 machinelearning통해 터널링을 시도합니다 .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.

메모:위의 트릭을 사용하려면 ncextserver1에 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.

관련 정보