Supprimer la bannière ssh du client OpenSSH

34

Je me connecte à un serveur qui a un ensemble de bannières ssh. Je voudrais le supprimer (surtout pour une utilisation non interactive). Je n'ai pas accès au serveur sshd_config.

La meilleure solution que j'ai trouvée jusqu'à présent consiste à définir l' LogLevel ERRORoption sur le client. Le problème est que cela supprimera tout INFOmessage d' un autre niveau, ce que je ne veux pas forcément cacher (recherchez des logitexemples dans la source OpenSSH ). Je pourrais aussi utiliser ssh -qmais cela supprimera encore plus.

Existe-t-il d'autres solutions plus spécifiques?

Michael Hoffman
la source

Réponses:

43

Autant que je sache, " ssh -q" ou " LogLevel QUIET" ~/.ssh/configsont les moyens "traditionnels" de faire taire la bannière. Donc, vous avez déjà un "meilleur" compromis avec " LogLevel ERROR".

Une solution plus spécifique consisterait à utiliser une version corrigée personnalisée du client ssh, si cela est une option.

Pascal Thivent
la source
2
Je pense que cela LogLevel ERRORsupprime seulement la bannière dans les nouvelles versions d'OpenSSH. Dans les anciennes versions, LogLevel QUIETou ssh -qsont obligatoires.
Michael Hoffman
3
Si -qcela ne fonctionne pas (cela ne m'est pas arrivé sous Debian 7), vous pouvez utiliser une solution tirée d'une autre question: serverfault.com/a/764403/62024
Nux
1

Vous pouvez aussi utiliser:

Banner none

sur

/etc/ssh/sshd_config
Pedro Lobito
la source
1
L'OP a spécifié "Je n'ai pas accès au serveur sshd_config", ce qui ne répond malheureusement pas à la question.
M. Shunz le
@MrShunz Vous avez raison, mais je suis arrivé à cette page à la recherche de Suppressing ssh banner from OpenSSH clientcette réponse, même si elle ne répond pas complètement à la question OP, elle peut aider les futurs utilisateurs.
Pedro Lobito
0

Installer hexedit:

apt-get update && apt-get install hexedit

Sauvegardez votre fichier binaire sshd et créez une copie de travail modifiable (en tant que root):

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

Mettez à jour le binaire avec hexedit:

hexedit /tmp/sshd.new

Appuyez sur la touche TAB pour passer de la zone HEX à la zone ASCII.

Utilisez CTRL + S pour afficher l'invite de recherche et recherchez le texte de votre bannière que vous souhaitez masquer, par exemple "OpenSSH_7.4".

Vous devriez voir quelque chose comme:

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

Utilisez les touches fléchées pour mettre en surbrillance le début de la chaîne que vous souhaitez mettre à jour et tapez votre remplacement.

Veillez à rester dans les limites de la longueur de la bannière d'origine. Vous pouvez également appuyer sur la touche TAB pour revenir à la zone HEX si vous souhaitez annuler la chaîne en définissant chaque mot sur '00'.

Votre changement devrait ressembler à quelque chose comme:

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

Enregistrez vos modifications avec CTRL + x et un Y.

Vérifiez s'il y a des cas que nous avons manqués (nous n'attendons aucune sortie maintenant):

strings /tmp/sshd.new | grep Rasp

Mettez à jour sshd et redémarrez le service pour faire bonne mesure:

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

Vérifiez que vous pouvez toujours utiliser SSH (sinon, restaurez la sauvegarde ou réinstallez OpenSSH à partir de votre gestionnaire de paquets!):

ssh -vv user@ip

REMARQUE!!

Cette modification ne sera que temporaire car à chaque fois que vous mettrez à jour OpenSSH, le binaire sera remplacé.

Kokane
la source
2
Bien qu'il soit vrai que la question ne spécifie pas réellement qu'ils n'ont pas d'accès en écriture sshd, il semble assez probable car elle ne spécifiait aucun sshd_configaccès. Ils recherchent une solution basée sur le client.
Mike Scott