SSH 또는 FTP 프로토콜이 서버에 연결하려는 도메인을 알려줍니까?


25

Bash 쉘에서 ssh또는 ftp명령을 사용할 때 연결중인 서버가 사용 된 도메인 이름을 알 수 있습니까? 도메인 이름이 DNS를 통해 IP 주소로 로컬 변환 된 것으로 알고 있습니다. HTTP에서, 그 후에 서버는 정확한 페이지를 제공하거나 올바른 TLS 인증서 (SNI)를 제공하기 위해 원래 도메인 이름을 알려줍니다.

host serverfault.com
GET /

에 연결할 때 유사한 현상이 발생합니까 sshftp?

도메인 이름을 요구하는 서버 (GoDaddy 웹 호스팅)에 ssh를 넣으려고하지만 user@IPaddressDNS가 아직 GoDaddy IP 주소로 이동하지 않아 연결을 시도 할 때 허용하지 않기 때문에 묻습니다 .


당신이 있습니까 .ssh/config호스트 이름 (또는 IP 주소)에 특정을? 어떤 오류가 발생합니까? (흠, 이것은 지원이지만 질문에 대답하는 목표는 아닙니다 ...)
Andreas Krey

Login authentication failedFTP 및 Permission deniedSSH에 대한 일반적인 내용 입니다 . 실제 연결에 문제가 없으며 로그인 자격 증명을 4 번 확인했습니다.
dotancohen

답변:


25

아니요, SSH 클라이언트는 연결된 DNS 이름을 서버에 전달하지 않습니다.
올바르게 말했듯이 이름은 로컬로 IP 주소로 확인됩니다.

FTP에 대해 잘못된 것 같습니다.
자세한 내용은 다른 답변을 참조하십시오.


5
더 이상 FTP에는 해당되지 않습니다. 내 답변
Martin Prikryl

흥미 롭습니다. 내 답변을 편집했습니다. 감사!
faker

실제로 2015 년 현재 대부분의 경우 편집되지 않은 답변이 여전히 정확합니다. 그러나 앞으로 몇 년 안에 변경 될 수 있습니다.
dotancohen

아직 얼마나 많은 클라이언트가 지원하는지 궁금합니다. 어쨌든 귀하의 답변이 더 정확합니다.
faker

@faker atm을 알고있는 클라이언트 측 지원에 대한 정보를 거의 추가하지 않았습니다. 나중에 추가 조사를 수행 할 수 있습니다.
Martin Prikryl

34

SSH / SFTP 프로토콜 에는 호스트를 서버에 제공하는 메커니즘 이 없습니다 .

이 기능을 OpenSSH에 추가하는 것에 대한 토론이있었습니다 . ssh의 "가상 호스트"를 참조하십시오 .


FTP 프로토콜 에는HOST HTTP Host헤더 와 동일한 명령 있습니다 . 비교적 새로운 RFC 7151에 의해 지정됩니다 . RFC는 2014 년 3 월에 발표되었습니다 (첫 번째 초안은 2007 년부터). 따라서 아직 보편적으로 지원되지 않습니다.

서버 측에서는 IIS (RFC가 Microsoft에서 후원 함)와 ProFTPD (1.3.6rc1 이후)에서 지원합니다. Pure-FTPd 또는 vsftpd와 같은 다른 일반적인 Unix FTP 서버에서는 지원되지 않습니다.

클라이언트 측에서는 (my) WinSCP 가 지원합니다 . 저자 가 아이디어에 반대 하거나 CyberDuck에 의해 FileZilla는 지원하지 않습니다 . 나는 다른 사람들에 대해 모른다.


감사합니다. 향후 몇 년 동안 사람들이이 문제를 겪고이 질문을 Google에 전달할 때 고려해야 할 중요한 사항입니다.
dotancohen

1
알아서 반가워요. 호스트 이름을 기반으로 한 IP 주소로 작성된 ssh 연결을 다른 서버로 디스패치 할 수있는 프론트 엔드가 필요하기 때문에 ssh에도 존재하는 것과 같은 것을 원합니다. 그러나 이전의 모든 연구는 ssh에는 존재하지 않으며 프로토콜에 쉽게 추가 할 수 없다는 결론에 동의합니다.
kasperd

@kasperd, 다른 연결에 다른 포트 번호를 사용할 수 있습니다. 또는 사용자 이름을 기반으로 할 수 있습니다.
AE

@AE 두 가지 접근법 모두 내 유스 케이스에는 작동하지 않습니다. 연결을 보낼 서버를 결정해야 할 때까지 클라이언트는 아직 사용자 이름을 보내지 않았습니다. (또한 나는 사용자 이름이 암호화 된 상태로만 전송된다고 확신하며 사용자 이름을 추출하기 위해 ssh 연결을 mitm하는 방법을 모르겠습니다.) 내 프런트 엔드가 실제로 호스트 이름의 DNS 조회를 수행하기 때문에 포트 번호가 작동하지 않습니다 백엔드를 찾기 위해 (프론트 엔드는 듀얼 스택이고, 백엔드에는 퍼블릭 IPv4 주소가 없습니다. 프론트 엔드의 목적은 IPv4 전용 클라이언트가 백엔드에 액세스 할 수 있도록하는 것입니다.)
kasperd

2
@kasperd SSH에 추가하는 방법에 대한 OpenSSH 메일 링리스트 스레드에 대한 링크를 추가했습니다.
Martin Prikryl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.