서버 배너를 억제하는 SSH 클라이언트 옵션?


답변:


-1

당신은 할 수 없습니다. (적어도 OpenSSH는 제외)

인증이 이루어지기 전에 서버에서 서버 배너를 보냅니다. 요점은 일반적으로 법적 면책 조항 또는 이와 유사한 "지금 연결을 끊을 수있는 권한이없는 경우"유형의 메시지 또는 원격 사용자가 억제 / 무시하기를 원하지 않는 기타 중요한 사항을 포함하는 것입니다.

정말로 이것을 제거하려면 SSH 클라이언트의 사용자 정의 버전을 해킹하고 컴파일해야합니다.


15
이것은 오래된 정보이며 더 이상 일반 배포판에서는 적용되지 않습니다. 아래의 답변 중 하나를 사용 -q하거나 -o LogLevel=error:-) 지금 위대한 일을
— 쫄자

28

이 LogLevel옵션은 :

배너를 침묵 시키지만 여전히 오류를 수신 할 수 있습니다.

$ ssh -o LogLevel=error localhost 
Permission denied (publickey).

OpenSSH 6.9 클라이언트에서 작동하지 않았습니다. 아마도 버전 정보가 유용 할 것입니까?
— Zayne S Halsall

OpenSSH_6.6.1p1 우분투 2ubuntu2.3와 작품, OpenSSL을 1.0.1f 2014년 1월 6일
— Kulbir Saini

6

나는 그것을 테스트했다. 나는 -qssh 명령에서 사용할 수 있다고 생각한다 . 매개 변수 -q는 자동 모드를 의미 합니다 . 예를 들어 대부분의 경고 및 진단 메시지가 표시되지 않습니다.

ssh -t '$node2' 'sudo cat xxx' |grep xxxxx" 2>/dev/null >/root/node2

또는

ssh -t -q '$node2' 'sudo cat xxxx' |grep xxx" >/root/node2

이것이 다른 사람들을 도울 수 있기를 바랍니다.


-q는 CentOS의 6 2.6 (클라이언트에서 OpenSSH 6.9 수세에 페도라 (22) 클라이언트에서 작업을하지 않았다가 특정 SSH 버전 참조하면 어쩌면이 대답이 upvoted 될 것이다.?
— Zayne S 할살을

6

배너를 억제하려면 ~ / .ssh / config를 다음과 같이 업데이트하십시오.

Host *
    LogLevel error

"Host *"줄이 중복되었거나 잘못되었다고 생각합니다. 어쨌든, 나는 그것없이 원하는 효과를 얻습니다. 또한 OP는 특정 프로그래밍 조건에서 효과를 얻고 자했으며,이 경우 위에 나열된 명령 줄 옵션이 더 나은 솔루션입니다.
— UncaAlby

4

블록 Banner내부에 다른 (없음) 을 설정할 수 있어야합니다 Match.

예를 들어 :

Match Address 192.0.2.0/24
        Banner none

그러나 특정 조건에 따라 서버 측 에서 수행해야 합니다 . 클라이언트 쪽에서 는 할 수 없습니다 .


4

당신이 찾고있는 것 같습니다 -q :

저소음 모드. 대부분의 경고 및 진단 메시지가 표시되지 않습니다.

ssh user@host
*------------------------------------------------------------------------------*
| banner: blah                                                                 |
*------------------------------------------------------------------------------*
Last login: Mon Oct  2 16:40:01 2017 from ipAddress
$

와 -q

ssh -q user@host
Last login: Mon Oct  2 16:40:30 2017 from ipAddress
$

좋고 조용합니다. 배너는 여전히 구성되어 있지만 방해하지 않습니다.

다른 참고 사항 : 배너를 사용하지 마십시오. 아무것도 확인하거나 거부하지 않는 것이 가장 좋습니다. 걱정하지 않은 사람들에게는 도움이되지 않으며 걱정하는 사람들은 과거에 일할 때 웃을 것입니다;-)


0

나에게는 중요한 오류 정보 (종료 코드를 통해서만 얻을 수 있음)를 억제하기 때문에 -o LogLevel=error보다 낫습니다 -q.

이것을 옵션없이 비교하십시오 : [root@myserver804 myuser1]# ssh targetserver1; echo "exit code=$?" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1735 RSA host key for targetserver1 has changed and you have requested strict checking. Host key verification failed. exit code=255

이것으로 (조용) [root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?" exit code=255

이것으로 (로그 오류 만) [root@myserver804 myuser1]# ssh -o LogLevel=error targetserver1; echo "exit code=$?" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1735 RSA host key for targetserver1 has changed and you have requested strict checking. Host key verification failed. exit code=255

결론은 여전히 ​​관련 오류에 관심이 있다면 -o LogLevel=error


0

어느 쪽도 아니 -q또는 -oLogLevel=error작동합니다.

STDERR 를 억제하는 것이 효과가 있습니다.

ssh hostname command 2>/dev/null

그러나 단점은 STDERR 억제가 SSH 프로그램뿐만 아니라 전체 명령에 적용된다는 것입니다.


-2

배너를 억제 해야하는 쉘을 호출하십시오.

ssh you@someplace.com /bin/bash

그러나 적어도 저에게는 $ PS1이 설정되지 않아 중단되는 것처럼 보입니다. 작동하는지 확인하기 위해 몇 가지 명령을 입력해야했습니다.


1
에 의해 표시이되지 않습니다 억제 배너 Banner에서 옵션 /etc/sshd_config(이것은 FreeBSD의 / OpenSSH_5.8p2에 있지 않습니다 적어도)
— voretaq7

아, 나는 그 질문에 모토를 보았다. 그 설명을 올바르게 읽는 법을 배울 것입니다;)
— chrskly

-2

나를 위해 -q는 트릭을 수행했지만 여전히 파일에 저장된 출력으로 작업 할 수있었습니다.

ssh -q root @ server28 "ls -alF / dr_mksysb | egrep -v \"total | lost + found | ./ | ../ \ "| awk '{print \ $ NF}'| sed 's /.\$ // g ' "> $ {basedir} /28.list


그것이 당신을 위해 일하는 위대한. 그럼에도 불구하고 이것은 질문에 대답하지 않으며 최대 의견이어야합니다.
— 제랄드 슈나이더

그것은 문제입니다, 그것은 질문에 대답하지 않습니다, 나는 motd (배너)를 제거했습니다. 나는 질문에 명시된 것과 정확히 같은 문제를 가지고있었습니다
— Zatarra

질문과 관련된 답변의 유일한 부분은 -q매개 변수입니다. 나머지는 완전히 관련이 없으며 나에게만 도움이됩니다. 매개 변수는 이미 답변으로 제공되었으므로 도움이된다면 자유롭게 투표하십시오. 그러나이 "답변"은 다운 보트 만받습니다
— Gerald Schneider
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.