OpenSSH 클라이언트에서 ssh 배너 억제


34

ssh 배너가 설정된 서버에 로그인하고 있습니다. (특히 비 대화식 사용을 위해) 억제하고 싶습니다. 서버에 액세스 할 수 없습니다 sshd_config.

지금까지 찾은 가장 좋은 해결책 LogLevel ERROR은 클라이언트 에서 옵션 을 설정하는 것입니다. 문제는 INFO필자가 숨기고 싶지 않은 다른 모든 수준의 메시지를 억제한다는 것입니다 ( logit예를 들어 OpenSSH 소스 검색 ). 나는 또한 사용할 수는 ssh -q있지만 훨씬 더 억제 할 것입니다.

더 구체적인 솔루션이 있습니까?

답변:


43

AFAIK, " ssh -q"또는 " LogLevel QUIET" ~/.ssh/config는 배너를 무음으로 만드는 "전통적인"방법입니다. 따라서 이미 " LogLevel ERROR" 과 (와) "더 나은"타협이 있습니다.

보다 구체적인 솔루션은 옵션 인 경우 ssh 클라이언트의 사용자 정의 패치 버전을 사용하는 것입니다.


2
LogLevel ERROR최신 버전의 OpenSSH에서는 배너 만 억제 한다고 생각 합니다. 이전 버전 LogLevel QUIET이거나 ssh -q필수입니다.
Michael Hoffman

3
경우 -q: (그것이 데비안 7에 나를 위해하지 않았다) 다음 또 다른 질문에서 솔루션을 사용할 수 있습니다 작동하지 않습니다 serverfault.com/a/764403/62024
NUX

1

다음을 사용할 수도 있습니다.

Banner none

/etc/ssh/sshd_config

1
OP가 "서버에 액세스 할 수 없음"을 지정 sshd_config했으므로 불행히도 이것은 질문에 대한 답변이 아닙니다.
Mr Shunz

@MrShunz 당신 말이 맞지만, 나는이 페이지를 찾고이 Suppressing ssh banner from OpenSSH client답변에 도착했지만 OP 질문에 완전히 대답하지는 않지만 향후 사용자에게 도움이 될 수 있습니다.
페드로 로비 토

0

hexedit를 설치하십시오 :

apt-get update && apt-get install hexedit

sshd 바이너리를 백업하고 루트로 편집 가능한 작업 복사본을 만듭니다.

  cp -p /usr/sbin/sshd /tmp/sshd.backup
  cp -p /tmp/sshd.backup /tmp/sshd.new

hexedit로 바이너리를 업데이트하십시오 :

hexedit /tmp/sshd.new

Tab 키를 눌러 16 진수를 ASCII 영역으로 전환합니다.

CTRL + S를 사용하여 'OpenSSH_7.4'와 같이 숨기려는 것보다 검색 프롬프트를 표시하고 배너에서 텍스트를 검색하십시오.

다음과 같은 내용이 표시되어야합니다.

0007DA54   61 67 65 6E  74 00 00 00  4F 70 65 6E  agent...Open
0007DA60   53 53 48 5F  37 2E 34 70  31 20 52 61  SSH_7.4p1 Ra
0007DA6C   73 70 62 69  61 6E 2D 31  30 2B 64 65  spbian-10+de
0007DA78   62 39 75 32  00 00 00 00  4F 70 65 6E  b9u2....Open

화살표 키를 사용하여 업데이트하려는 문자열의 시작을 강조 표시하고 대체를 입력하십시오.

원래 배너의 길이 범위 내에 있어야합니다. 각 단어를 '00'으로 설정하는 문자열을 널로 지우려면 Tab 키를 눌러 HEX 영역으로 다시 전환 할 수도 있습니다.

변경 사항은 다음과 같아야합니다.

0007DA54   61 67 65 6E  74 00 00 00  48 65 72 65  agent...Here
0007DA60   20 62 65 20  64 72 61 67  6F 6E 73 2E   be dragons.
0007DA6C   20 54 75 72  6E 20 42 61  63 6B 00 00   Turn Back..
0007DA78   00 00 00 00  00 00 00 00  4F 70 65 6E  ........Open

Ctrl + x 및 Y를 사용하여 변경 사항을 저장하십시오.

우리가 놓친 인스턴스가 있는지 확인하십시오 (지금 출력이 없을 것으로 예상합니다).

strings /tmp/sshd.new | grep Rasp

sshd를 업데이트하고 올바른 조치를 위해 서비스를 다시 시작하십시오.

rm /usr/sbin/sshd
cp -p /tmp/sshd.new /usr/sbin/sshd
systemctl restart ssh.service

SSH를 계속 사용할 수 있는지 확인하십시오 (그렇지 않으면 백업을 복원하거나 패키지 관리자에서 OpenSSH를 다시 ​​설치하십시오).

ssh -vv user@ip

노트!!

이 변경 사항은 OpenSSH를 업데이트 할 때마다 바이너리 만 교체되므로 일시적입니다.


2
질문에 실제로 쓰기 권한이 없음을 명시하지는 않았지만 액세스 권한을 지정하지 않았기sshd 때문에 가능성이 높습니다 . 그들은 클라이언트 기반 솔루션을 찾고 있습니다. sshd_config
Mike Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.