서버 배너를 억제하는 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.