Automatycznie akceptuj odcisk palca klucza rsa z wiersza polecenia

15

Próbowałem yes | ssh [email protected]zaakceptować odcisk palca klucza RSA, ale nadal jestem monitowany, jeśli jestem pewien, że chcę się połączyć. Czy istnieje sposób, aby to zrobić automatycznie?

VenomFangs
źródło

Odpowiedzi:

8

Dodaj je do pliku startowego bash lub podobnego:

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

Następnie użyj sshtmplub scptmpzamiast sshi scp.

UWAGA Jeśli pójdziesz tą drogą, nie zostaniesz ostrzeżony o zmianie klucza hosta i utraci on bezpieczeństwo.


źródło
4
Dzięki ssh -o "StrictHostKeyChecking no" [email protected]działało dla mnie
VenomFangs
16
jak to jest odpowiedź? Pytanie polegało na automatycznym akceptowaniu kluczy, a nie ich ignorowaniu! Jeśli zostanie to zadane i udzielone tutaj odpowiedzi, to jak znaleźć odpowiedź na pytanie „Akceptuj klucze automatycznie”? Nienawidzę robić negatywnych opinii, ale daj spokój, nie taka powinna być wymiana stosów!
JohnnyB,
@JohnnyB spójrz na moją odpowiedź. Nie jest to najczystsze rozwiązanie, ale w rzeczywistości pozwala na automatyczne przyjęcie klucza
RDP
13

OpenSSH 7.6 wprowadził nowe StrictHostKeyChecking=accept-newustawienia właśnie w tym celu:

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

( Informacje o wersji OpenSSH 7.6 )

Klas Š.
źródło
10

Programowe używanie SSH ze znanym kluczem hostów

Jeśli chcesz używać programowo ORAZ unikać ataku Man-In-The-Middle , sugeruję, abyś otrzymał znany odcisk palca za pomocą polecenia ssh-keyscan. Przykład:

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

Następnie możesz sfałszować skrypt, aby zapisać go w pliku tymczasowym i użyć UserKnownHostsFileopcji. Poniższy przykład to skrypt, który można nazwać 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

Dzięki temu możesz po prostu uruchomić ssh_githubzamiast sshi połączy się, nawet jeśli nie ma known_hostspliku, w którym umieścisz skrypt.

PROW
źródło
0

Po prostu używam: 'ssh -o StrictHostKeyChecking = no user @ host', można go również używać z pssh: 'pssh -O StrictHostKeyChecking = no -h list.text -l użytkownik -A -i "cmd"

Pozdrowienia,

Diego Souza
źródło
To działało dla mnie, czy istnieje powód, dla którego został odrzucony? Wymaga również OpenSSH 7.6+
Xenocide8998
-3

Możesz użyć -yopcji: np. Spróbuj

ssh -y [email protected]

-y Zawsze akceptuj klucz zdalnego hosta, jeśli jest nieznany

użytkownik392897
źródło
Witaj w Server Fault! Skorzystaj z opcji Markdown i / lub opcji formatowania w menu edycji, aby poprawnie ustawić swoje posty i poprawić ich czytelność. Konwencją jest formatowanie poleceń jako „ code”.
HBruijn
Dziwne, ale u mężczyzny widzę następujące --y Send log information using the syslog system module. By default this information is sent to stderr.
ALex_hha
To samo widzę u człowieka.
Király István
to nie jest poprawna opcja ssh? Skąd to skopiowałeś / wkleiłeś?
Flo Woo
2
Ta opcja istnieje tylko w dropbear SSH, a nie w OpenSSH.
Jeremy Visser,