포트가 있는 IP로 ssh로 DNS 설정을 변경할 수 있나요?

포트가 있는 IP로 ssh로 DNS 설정을 변경할 수 있나요?

포트 포워딩 기능이 있는 VPN을 사용하여 서버를 실행하고 있습니다. 이 IP는 '12345' 포트를 통해서만 외부 인터넷에 접속할 수 있습니다. 따라서 서버에 연결하려면 "111.111.111.111:12345" 또는 "example.com:12345"를 통해 액세스해야 합니다.

서버에 SSH로 연결하는 데 사용할 수 있도록 도메인을 "ssh.example.com"으로 설정할 수 있는 URL 전달(리디렉션) 또는 DNS 유형 레코드를 설정할 수 있는지 궁금합니다.

다음 명령을 실행하고 싶습니다.

ssh [email protected]

답변1

당신이 사용할 수있는SSH 구성 파일~/.ssh/config설정 하려면 :

Host ssh.example.com
    Hostname 111.111.111.111
    Port 12345

이렇게 하면 이를 사용하여 서버에 연결할 수 있습니다.ssh [email protected]

예를 들어 더 많은 SSH 옵션을 추가할 수도 있으므로 User더 이상 입력할 필요가 없습니다.

DNS를 사용하여 이 작업을 수행하려면 파일에 다음 줄을 추가하면 됩니다 /etc/hosts.

111.111.111.111 ssh.example.com

SSH 명령은 다음과 같습니다.ssh -p 12345 [email protected]

답변2

간단한 대답은 "아니요"입니다. 적어도 모든 고객에게 해당되는 것은 아닙니다. SSH에는 HTTP와 같은 전달 메커니즘이 없습니다. DNS 도메인 이름은 IP는 있지만 포트 번호는 없는 A 또는 AAAA 레코드를 사용합니다. SSH 클라이언트에는 포트 22만 필요합니다.

DNS에는 이러한 목적으로 설계된 SRV 레코드가 있고 포트 번호도 포함되어 있지만 많은 클라이언트는 이를 전혀 확인하지 않습니다.

미래의 어느 시점에는 모든 SSH 클라이언트가 실제로 SRV 레코드를 확인하고 사용할 수 있지만 이 글을 쓰는 시점에서는 Linux의 OpenSSH와 Windows의 Putty는 그렇지 않을 것이라고 생각합니다. OSX/MacOS가 이 기능을 지원할 수 있다는 모호한 보고가 있지만 확인할 수는 없습니다(https://serverfault.com/q/1004793/94158).

그러나 짧은 버전은 포트 22에 연결하지 않는 경우 연결할 때 해당 포트를 명시적으로 제공해야 한다는 것입니다.

당신은 할 수SSH 구성을 통해 이 작업을 자동으로 수행하도록 SSH 클라이언트를 구성합니다. 다른 답변에서 알 수 있듯이.

답변3

아니요. 하지만 해결 방법으로 DNS SRV 레코드를 사용하여 SSH 포트를 지정할 수 있습니다. 불행히도 이는 SSH 클라이언트에서 지원되지 않지만 몇 가지 해결 방법이 있습니다. https://serverfault.com/questions/960733/dns-record-for-ssh-docker

답변4

(이것은 오래된 질문이지만 Serverfault는 오늘 이 질문을 첫 페이지에 다시 올렸습니다/여기의 답변은 이를 해결하지 못하는 것 같습니다).

서버에 SSH로 연결하는 데 사용할 수 있도록 도메인을 "ssh.example.com"으로 설정할 수 있는 URL 전달(리디렉션) 또는 DNS 유형 레코드를 설정할 수 있는지 궁금합니다.

달성하려는 메커니즘을 (존재하지 않는) 측면에서 설명하려는 시도를 제쳐두고 ...

"example.com"을 게이트웨이 장치로 사용하여 다른 컴퓨터 "ssh.example.com"에 액세스하려는 것 같습니다. 당신이 말하는 특정 포트는 "example.com"이 IP 라우터 역할을 할 수 없다는 것을 의미합니다. 그렇다면 단순히 example.com:12345를 ssh.example.com:22로 프록시하면 문제의 연결 부분이 해결되지만 이는 example.com 뒤에 있는 단일 주소/포트에 대해서만 작동합니다.

SOCK 및 HTTP를 포함하여 이러한 다중화를 수용하도록 설계된 여러 프록시 프로토콜이 있습니다. 이를 위해서는 example.com에 배포되고 포트 12345에서 수신 대기하는 적절한 서버가 필요합니다. 그러나 (구현 선택을 안내하는 컨텍스트 없이) SSH 서버와 릴레이 SSH 연결을 사용합니다(이것은 또한 포트 전달 및 기타 트릭도 허용합니다). 예를 들어 이것을 ssh_config에 추가하면 다음과 같은 작업을 수행할 수 있습니다.ssh [email protected]

Host example.com
   Port 12345
   User jumpuser

Host ssh.example.com
   ProxyCommand ssh -q -W %h:%p example.com

OTOH example.com에 HTTP 프록시가 있었다면...

Host ssh.example.com
    ProxyCommand corkscrew example.com 12345 %h %p

DNS는 라우팅/프록시/터널링 문제를 해결하기 위한 메커니즘을 제공하지 않습니다.

관련 정보