J'ai lu Arrêter la connexion ssh de l'impression de motd depuis le client? , cependant ma situation est un peu différente:
ssh -o "PrintBanner=No" someserver
).Une idée?
Il existe une option LogLevel
:
Cela fait taire la bannière, mais vous pouvez toujours recevoir des erreurs:
$ ssh -o LogLevel=error localhost
Permission denied (publickey).
Mettre à jour ~/.ssh/config avec ce qui suit pour supprimer la bannière
Host *
LogLevel error
Je l'ai testé, je pense que vous pouvez utiliser -q
dans la commande ssh. Le paramètre -q était moyen mode silencieux. Il provoque la suppression de la plupart des messages d'avertissement et de diagnostic, par ex.
ssh -t '$node2' 'Sudo cat xxx' |grep xxxxx" 2>/dev/null >/root/node2
ou
ssh -t -q '$node2' 'Sudo cat xxxx' |grep xxx" >/root/node2
J'espère que cela peut aider les autres
Vous devriez pouvoir définir un Banner
différent (sur aucun) à l'intérieur d'un bloc Match
.
Par exemple:
Match Address 192.0.2.0/24
Banner none
Mais cela doit être fait côté serveur, en fonction de conditions spécifiques. Vous ne pouvez pas le faire du côté client.
On dirait que vous cherchez - q:
Mode silencieux. Supprime la plupart des messages d'avertissement et de diagnostic.
ssh user@Host
*------------------------------------------------------------------------------*
| banner: blah |
*------------------------------------------------------------------------------*
Last login: Mon Oct 2 16:40:01 2017 from ipAddress
$
Avec -q
ssh -q user@Host
Last login: Mon Oct 2 16:40:30 2017 from ipAddress
$
Agréable et calme. La bannière est toujours configurée mais cela ne vous dérange pas.
Sur une autre note: n'utilisez pas de bannières. Il vaut mieux ne rien confirmer ou nier. Cela ne vous aidera pas avec les personnes qui ne vous inquiètent pas et les personnes qui vous inquiètent riront en travaillant à côté ;-)
Pour moi, -o LogLevel=error
Était meilleur que -q
, Car ce dernier supprime les informations importantes sur l'erreur (que vous pouvez ensuite obtenir uniquement via le code de sortie).
Comparez ceci (sans options): [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
avec ceci (silencieux) [root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?" exit code=255
avec ceci (seulement les erreurs de journalisation) [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
La conclusion est donc - si vous êtes toujours intéressé par les erreurs pertinentes, utilisez -o LogLevel=error
Ni le -q
ou la -oLogLevel=error
travaux.
Ce qui fonctionne, c'est de supprimer STDERR
ssh hostname command 2>/dev/null
L'inconvénient, cependant, est que la suppression STDERR est appliquée à la commande entière et pas seulement au programme SSH.