원시 연결이 설정될 때 OpenSSH 서버가 표시하는 문자열을 수정할 수 있습니까?
표시되는 텍스트 배너에 관한 것이 아닙니다.~ 후에연결이 설정되고 의 매개 Banner
변수 로 구성될 수 있지만 sshd_config
SSH 서버가 핸드셰이크 전에 연결 시도 시 전송하는 원시 출력에 관한 것입니다.
예를 들어, 원시 텔넷 연결이 주어지면
$ 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
제품 이름/버전 제거는 허용되지 않습니다. 이를 위해서는 소스 코드를 패치해야 합니다.