Puncte:0

Cum se scrie un script pentru a verifica dacă cheia din fișierul known_hosts este corectă

drapel tr

Aș dori să implementez o funcție într-un script care verifică dacă cheia care corespunde unei gazde date din fișierul known_hosts este corectă. Modul evident de a face acest lucru este să încercați o conexiune ssh și să analizați dacă are ca rezultat avertismentul known_hosts. Acest lucru este suboptim din aceste motive:

  • Dacă gazda este nu în fișierul know_hosts trebuie verificat separat
  • Se bazează pe o anumită formulare a avertismentului care este supusă modificării
  • Rulează o comandă ssh pentru dvs. pe serverul țintă pe care nu trebuie să o rulați și care poate eșua din diferite motive, cum ar fi shell-ul de conectare specificat
  • Necesită acreditări valide

Am încercat să găsesc o opțiune în ssh-keyscan și ssh-keygen comenzi care ar putea să verifice, dar nu le-au găsit.

Care este cel mai simplu mod de a face această verificare?

Puncte:1
drapel vn
#!/usr/bin/env bash

HOST=1 USD

set -o pipefail

HOST_KEY_LINE=$(ssh-keygen -F „$HOST” | coada -n1)

dacă [ $? -ne 0]; atunci
  echo „$HOST nu este în fișierul known_hosts”
  iesirea 1
fi

KEY_TYPE=$(echo „$HOST_KEY_LINE” | awk „{ print $2 }”)
HOST_KEY=$(echo „$HOST_KEY_LINE” | awk „{ print $3 }”)

ACTUAL_KEY=$(ssh-keyscan -t „$KEY_TYPE” „$HOST” 2>&1 | tail -n1 | awk „{ print $3 }”)

dacă [ $? -ne 0]; atunci
  echo „Nu s-a putut obține cheia de la $HOST: $ACTUAL_KEY”
  iesirea 1
fi

dacă [ "$HOST_KEY" = "$ACTUAL_KEY" ]; atunci
  echo „known_hosts are o cheie corectă”
  iesirea 0
fi

echo „known_hosts are o cheie incorectă”
Puncte:0
drapel us

Dacă aveți o listă cu toate gazdele disponibile, puteți utiliza următoarele:

ssh-keyscan -t rsa,dsa -f hosts_list > ~/.ssh/known_hosts_revised

Aceasta va genera un nou cunoscute_gazde_revizuite pe care îl puteți folosi pentru a face o diferență cu curentul cunosc_gazde pentru a vedea diferențele.

The listă_gazde conținutul ar trebui să fie ca:

1.2.3.4,1.2.4.4 nume.domeniul.meu,nume,n.domeniul.meu,n,1.2.3.4,1.2.4.4

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.