Accetta automaticamente l'impronta digitale chiave rsa dalla riga di comando


15

Ho provato yes | ssh root@10.x.x.xa provare ad accettare l'impronta digitale della chiave RSA, ma mi viene ancora richiesto se sono sicuro di voler connettermi. C'è un modo per renderlo automatico?

Risposte:


8

Aggiungi questi al tuo file di avvio di bash o simili:

 #
 #  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" \
         "$@"
 }

Quindi utilizzare sshtmpo scptmpal posto di sshe scp.

NOTA Se prosegui su questa strada non verrai avvisato che una chiave host è cambiata e perderà la sicurezza.


4
Grazie ha ssh -o "StrictHostKeyChecking no" root@10.x.x.xfunzionato per me
VenomFangs

16
come è questa la risposta? La domanda era accettare le chiavi automaticamente, non ignorarle! Se questo viene richiesto e risposto qui, come posso trovare una risposta alla domanda effettiva "Accetta chiavi automaticamente"? Odio fare un downvote ma vieni gente, non è così che dovrebbe essere lo scambio di stack!
JohnnyB,

@JohnnyB dai un'occhiata alla mia risposta. Non è la soluzione più pulita, ma in realtà consente di accettare automaticamente la chiave
RDP

13

OpenSSH 7.6 ha introdotto nuove StrictHostKeyChecking=accept-newimpostazioni proprio per questo scopo:

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

( Note sulla versione di OpenSSH 7.6 )


10

Utilizzo di SSH a livello di codice con chiave host nota

Se quello che vuoi è poter usare a livello di codice E evitare l'attacco man-in-the-middle , allora ti suggerisco di ottenere l'impronta digitale conosciuta usando il comando ssh-keyscan. Esempio:

$ 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==

Quindi è possibile creare uno script per salvarlo in un file temporaneo e utilizzare l' UserKnownHostsFileopzione. L'esempio seguente è uno script, che può essere chiamato 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

Con questo, puoi semplicemente eseguire ssh_githubinvece sshe si connetterà anche se non ci sono known_hostsfile in cui hai inserito lo script.


0

Uso solo: 'ssh -o StrictHostKeyChecking = nessun utente @ host', può anche essere usato con pssh: 'pssh -O StrictHostKeyChecking = no -h list.text -l utente -A -i "cmd"'

Saluti,


Questo ha funzionato per me, c'è un motivo per cui è stato votato in ribasso? Richiede anche OpenSSH 7.6+
Xenocide8998

-3

È possibile utilizzare l' -yopzione: cioè provare

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

-y Accetta sempre la chiave host remota se sconosciuta


Benvenuti in Server Fault! Utilizza Markdown e / o le opzioni di formattazione nel menu di modifica per digitare correttamente i tuoi post per migliorarne la leggibilità. È convenzione formattare i comandi come " code".
HBruijn,

Strano ma nell'uomo vedo quanto segue --y Send log information using the syslog system module. By default this information is sent to stderr.
ALex_hha

Vedo lo stesso nell'uomo.
Király István,

questa non è un'opzione ssh valida? Da dove l'hai copiato / incollato?
Flo Woo,

2
Questa opzione esiste solo in SSH dropbear, non in OpenSSH.
Jeremy Visser,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.