Accepter automatiquement l'empreinte digitale de la clé rsa à partir de la ligne de commande


15

J'ai essayé yes | ssh root@10.x.x.xd'accepter l'empreinte digitale de la clé RSA, mais je suis toujours invité si je suis sûr de vouloir me connecter. Existe-t-il un moyen de rendre cela automatique?

Réponses:


8

Ajoutez-les à votre fichier de démarrage bash, ou similaire:

 #
 #  ssh + scp without storing or prompting for keys.
 #
 function sshtmp
 {
     ssh -o "ConnectTimeout 3" \
         -o "StrictHostKeyChecking no" \
         -o "UserKnownHostsFile /dev/null" \
              "$@"
 }
 function scptmp
 {
     exec scp -o "ConnectTimeout 3" \
         -o "StrictHostKeyChecking no" \
         -o "UserKnownHostsFile /dev/null" \
         "$@"
 }

Ensuite, utilisez sshtmp, ou scptmpà la place de sshet scp.

REMARQUE Si vous suivez cette voie, vous ne serez pas averti qu'une clé d'hôte a changé et perdra sa sécurité.


4
Merci a ssh -o "StrictHostKeyChecking no" root@10.x.x.xfonctionné pour moi
VenomFangs

16
comment est-ce la réponse? La question était d'accepter les clés automatiquement, pas de les ignorer! Si cette question est posée et répondue ici, comment puis-je trouver une réponse à la question réelle "Accepter automatiquement les clés"? Je déteste faire un downvote, mais allez-y, ce n'est pas la façon dont l'échange de pile devrait être!
JohnnyB

@JohnnyB jetez un oeil à ma réponse. Ce n'est pas la solution la plus propre, mais elle permet en fait d'accepter automatiquement la clé
RDP

13

OpenSSH 7.6 a introduit un nouveau StrictHostKeyChecking=accept-newparamètre exactement à cette fin:

ssh(1): expand the StrictHostKeyChecking option with two new
   settings. The first "accept-new" will automatically accept
   hitherto-unseen keys but will refuse connections for changed or
   invalid hostkeys. This is a safer subset of the current behaviour
   of StrictHostKeyChecking=no. The second setting "n", is a synonym
   for the current behaviour of StrictHostKeyChecking=no: accept new
   host keys, and continue connection for hosts with incorrect
   hostkeys. A future release will change the meaning of
   StrictHostKeyChecking=no to the behaviour of "accept-new".

( Notes de version d'OpenSSH 7.6 )


10

Utilisation de SSH par programme avec une clé d'hôtes connue

Si ce que vous voulez, c'est pouvoir utiliser par programmation ET éviter l'attaque Man-In-The-Middle , alors je vous suggère d'obtenir l'empreinte connue à l'aide de la commande ssh-keyscan. Exemple:

$ ssh-keyscan -t rsa,dsa github.com 2>/dev/null
github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

Ensuite, vous pouvez forger un script pour l'enregistrer dans un fichier temporaire et utiliser l' UserKnownHostsFileoption. L'exemple ci-dessous est un script, qui peut être appelé ssh_github:

#!/bin/bash

HOSTKEY='github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+                      h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+                                                                                                                                      PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+    2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=='

TEMPFILE=$(mktemp)
echo "$HOSTKEY" > $TEMPFILE

ssh -o "UserKnownHostsFile $TEMPFILE" $@

rm $TEMPFILE

Avec cela, vous pouvez simplement exécuter ssh_githubau lieu de sshet il se connectera même s'il n'y a pas de known_hostsfichier où vous placez le script.


0

J'utilise simplement: 'ssh -o StrictHostKeyChecking = no user @ host', il peut également être utilisé avec pssh: 'pssh -O StrictHostKeyChecking = no -h list.text -l user -A -i "cmd"'

Cordialement,


Cela a fonctionné pour moi, y a-t-il une raison pour laquelle le vote a été rejeté? Nécessite également OpenSSH 7.6+
Xenocide8998

-3

Vous pouvez utiliser l' -yoption: ie essayer

ssh -y root@10.x.x.x

-y Toujours accepter la clé d'hôte distant si inconnue


Bienvenue dans Server Fault! Veuillez utiliser Markdown et / ou les options de mise en forme dans le menu d'édition pour correctement définir vos articles afin d'améliorer leur lisibilité. Il est courant de formater les commandes en " code".
HBruijn

Étrange mais chez l'homme je vois ce qui suit --y Send log information using the syslog system module. By default this information is sent to stderr.
ALex_hha

Je vois la même chose chez l'homme.
Király István

ce n'est pas une option ssh valide? D'où avez-vous copié / collé cela?
Flo Woo

2
Cette option existe uniquement dans dropbear SSH, pas OpenSSH.
Jeremy Visser
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.