Akzeptieren Sie automatisch den Fingerabdruck der RSA-Taste über die Befehlszeile

15

Ich habe versucht yes | ssh [email protected], den Fingerabdruck des RSA-Schlüssels zu akzeptieren, werde aber trotzdem gefragt, ob ich sicher bin, dass ich eine Verbindung herstellen möchte. Gibt es eine Möglichkeit, dies automatisch zu machen?

VenomFangs
quelle

Antworten:

8

Fügen Sie diese Ihrer Bash-Startdatei oder ähnlichem hinzu:

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

Dann verwenden Sie sshtmpoder scptmpanstelle von sshund scp.

HINWEIS Wenn Sie diesen Weg gehen, werden Sie nicht benachrichtigt, dass sich ein Host-Schlüssel geändert hat und die Sicherheit verliert.


quelle
4
Danke ssh -o "StrictHostKeyChecking no" [email protected]hat für mich
funktioniert
16
Wie ist das die Antwort? Die Frage war, die Schlüssel automatisch zu akzeptieren, nicht zu ignorieren! Wenn dies hier gestellt und beantwortet wird, wie finde ich dann eine Antwort auf die eigentliche Frage "Schlüssel automatisch akzeptieren"? Ich hasse es, ein Downvote zu machen, aber komm schon, Leute, so sollte Stack-Exchange nicht sein!
JohnnyB
@ JohnnyB werfen Sie einen Blick auf meine Antwort. Es ist nicht die sauberste Lösung, aber es ermöglicht tatsächlich, dass der Schlüssel automatisch akzeptiert wird
RDP
13

OpenSSH 7.6 hat StrictHostKeyChecking=accept-newgenau zu diesem Zweck eine neue Einstellung eingeführt :

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

( OpenSSH 7.6 Versionshinweise )

Klas Š.
quelle
10

Programmgesteuertes Verwenden von SSH mit bekannten Hosts

Wenn Sie programmgesteuert verwenden UND Man-In-The-Middle-Angriffe vermeiden möchten, sollten Sie den bekannten Fingerabdruck mit dem Befehl abrufen ssh-keyscan. Beispiel:

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

Anschließend können Sie ein Skript fälschen, um es in einer temporären Datei zu speichern, und die UserKnownHostsFileOption verwenden. Das folgende Beispiel ist ein Skript, das aufgerufen werden kann 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

Mit diesem können Sie einfach laufen ssh_githubstatt , sshund es wird eine Verbindung , auch wenn es keine known_hostsDatei , in der Sie das Skript setzen.

RDP
quelle
0

Ich benutze nur: 'ssh -o StrictHostKeyChecking = no user @ host', es kann auch mit pssh verwendet werden: 'pssh -O StrictHostKeyChecking = no -h list.text -l Benutzer -A -i "cmd"'

Grüße,

Diego Souza
quelle
Das hat bei mir funktioniert. Gibt es einen Grund, warum es abgelehnt wurde? Benötigt auch OpenSSH 7.6+
Xenocide8998
-3

Sie können die -yOption verwenden: dh versuchen

ssh -y [email protected]

-y Akzeptieren Sie immer den Remote-Host-Schlüssel, wenn dieser unbekannt ist

user392897
quelle
Willkommen bei Server Fault! Verwenden Sie Markdown und / oder die Formatierungsoptionen im Bearbeitungsmenü, um Ihre Beiträge richtig einzugeben und ihre Lesbarkeit zu verbessern. Es ist üblich, Befehle als " code" zu formatieren .
HBruijn
Seltsam, aber in dem Mann sehe ich Folgendes --y Send log information using the syslog system module. By default this information is sent to stderr.
ALex_hha
Ich sehe das auch beim Menschen.
Király István
Dies ist keine gültige SSH-Option? Woher haben Sie das kopiert / eingefügt?
Flo Woo
2
Diese Option gibt es nur in Dropbear-SSH, nicht in OpenSSH.
Jeremy Visser