사용자 정의 SSH 연결 응답 문자열을 설정하는 방법은 무엇입니까?

사용자 정의 SSH 연결 응답 문자열을 설정하는 방법은 무엇입니까?

원시 연결이 설정될 때 OpenSSH 서버가 표시하는 문자열을 수정할 수 있습니까?

표시되는 텍스트 배너에 관한 것이 아닙니다.~ 후에연결이 설정되고 의 매개 Banner변수 로 구성될 수 있지만 sshd_configSSH 서버가 핸드셰이크 전에 연결 시도 시 전송하는 원시 출력에 관한 것입니다.

예를 들어, 원시 텔넷 연결이 주어지면

$ telnet localhost 22
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2

식별 정보를 최소한으로 줄이는 방법이 있습니까?

내 이해는 SSH-2.0-SSH 프로토콜에 필요하기 때문에 존재해야 한다는 것입니다. 그러나 다음에 나오는 문자열은 OpenSSH_7.2p2아마도 프로토콜에 필요하지 않을 수도 있지만 다시 컴파일하지 않고 변경하거나 제거하는 방법을 볼 수 없습니다.

이는 프로토콜이 작동하는 데 꼭 필요한 것보다 더 많은 정보를 제공하지 않는 것입니다.

답변1

아니요. 버전 문자열은 다음의 version.h에 정의되어 있습니다.OpenSSH 소스~처럼

#define SSH_VERSION "OpenSSH_7.4".

변경할 수 있지만 다시 컴파일해야 합니다.

그런 다음 다음 을 통해 함께 전송 됩니다 .

snprintf(buf, sizeof buf, "SSH-2.0-%.100s\r\n", SSH_VERSION)

(ssh_api.c 라인 381, 함수 내 _ssh_send_banner)

또한보십시오:SSH가 버전 번호를 광고하지 못하도록 방지.

답변2

최신 OpenSSH 버전에서는 를 통해 사용자 정의 텍스트를 추가할 수 있지만 VersionAddendum제품 이름/버전 제거는 허용되지 않습니다. 이를 위해서는 소스 코드를 패치해야 합니다.

관련 정보