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

15

J'ai essayé yes | ssh [email protected]d'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?

VenomFangs
la source

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é.


la source
4
Merci a ssh -o "StrictHostKeyChecking no" [email protected]fonctionné 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 )

Klas Š.
la source
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.

RDP
la source
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,

Diego Souza
la source
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 [email protected]

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

user392897
la source
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