2017-11-08 2 views
1

SSH 서버를 만들려고합니다. (Paramiko를 사용하지만, 여기서는 거의 관련이 없습니다). SSH 클라이언트가 요청한 호스트 이름을 확인하는 방법이 있는지 궁금합니다. 내가SSH 프로토콜은 클라이언트가 사용하는 호스트 이름을 결정합니다.

ssh [email protected] 

연결했다 그러나 나는 또한 동일한 서버 지적 CNAME 레코드가 있다면 예를 들어, 그래서 나 또한 그때 내가 알고 서버를 원하는

ssh [email protected] 

와 연결할 수 있습니다 첫 번째 경우 사용자가 example.com을 요청하고 두 번째 경우 foo.com을 요청했습니다.

내가 좋아하는 SSH 프로토콜 문서를 읽는되었습니다

https://tools.ietf.org/html/rfc4253 https://tools.ietf.org/html/rfc4252

그러나이 작업을 수행 할 수있는 방법이 있는지 찾을 수 없습니다.

답변

0

일반적으로 ssh 프로토콜은이 기능을 지원하지 않습니다. 주어진 ssh 클라이언트가 힌트를주는 환경 변수를 보낼 수도 있지만 키 교환 및 사용자 인증 후에 일어날 수 있습니다. 이는 정보를 원할 때보 다 훨씬 늦을 것입니다. RFC 4462에 설명 된 ssh GSS-API 메커니즘 중 하나를 통해 Kerberos 인증을 사용하는 경우 사용자가 GSS 교환의 일부로 요청한 호스트 이름을 얻게됩니다. 거의 확실하게 도움이되지는 않지만이 정보가 전송되는 곳을 알고있는 유일한 경우입니다.

ssh 가상 호스팅의 경우 각 가상 호스트에 대해 IP 주소 또는 포트를 지정해야합니다. 포트 공유 또는 IPv6을 응용 프로그램의 가능성으로 살펴보십시오.

관련 문제