GNU/Linux >> Znalost Linux >  >> Linux

Jak zkontrolovat, zda se pár veřejného / soukromého klíče RSA shoduje

Řešení 1:

Preferoval bych ssh-keygen -y -e -f <private key> způsobem namísto přijaté odpovědi Jak testujete veřejný/soukromý pár klíčů DSA? na Stack Overflow.

ssh-keygen -y -e -f <private key> vezme soukromý klíč a vytiskne odpovídající veřejný klíč, který lze přímo porovnat s vašimi dostupnými veřejnými klíči. (Tip:dejte si pozor na komentáře nebo klíčové možnosti.)

(Jak to sakra dělá? Mohu jen doufat, že veřejný klíč je zakódován přímo nebo nepřímo v soukromém klíči...)

Sám jsem to potřeboval a použil následující Bash one-liner. Pokud klíče patří k sobě, nemělo by to vypsat nic. Použijte trochu -q na rozdíl ve skriptech a rozdíl pouze vhodně nastaví návratový kód.

PRIVKEY=id_rsa
TESTKEY=id_rsa.pub
diff <( ssh-keygen -y -e -f "$PRIVKEY" ) <( ssh-keygen -y -e -f "$TESTKEY" )

Řešení 2:

V závislosti na tom, kde získáte soubor veřejného klíče, který testujete, může přijatá odpověď poskytnout falešně pozitivní výsledky. Je to kvůli chování popsanému v komentáři @drewbenn. Konkrétně, když je použita volba -e se souborem soukromého klíče jako parametr volby -f, jednoduše papouškuje (ale přeformátuje) to, co je v přidruženém souboru veřejného klíče.

Jinými slovy,

ssh-keygen -y -f id_rsa

(zřejmě) generuje hodnotu veřejného klíče a

ssh-keygen -y -e -f id_rsa

jednoduše a výstupy (a přeformátování) klíče v existující id_rsa.pub ať je to cokoli .

V mém případě musím ověřit, že pár nebyl poškozen. Rozhodl jsem se tedy porovnat následující:

ssh-keygen -y -f id_rsa | cut -d' ' -f 2

s

cut -d' ' -f 2 id_rsa.pub

Proto:

diff <(cut -d' ' -f 2 id_rsa.pub) <(ssh-keygen -y -f id_rsa | cut -d' ' -f 2)

Možná to není tak flexibilní, ale pro mé potřeby je to lepší. Možná to pomůže někomu jinému.

Řešení 3:

Pokud jsou ve vašem místním systému, podržte id_rsa.pub ve vašem $HOME/.ssh/authorized_keys a ssh na localhost pomocí id_rsa klíč. Pokud to funguje, shodují se.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh -i $HOME/.ssh/id_rsa localhost

Linux
  1. Jak importovat soukromý klíč do FileZilla pro SFTP

  2. Ssh – vzhledem k soukromému klíči Ssh, jak obnovit veřejný klíč?

  3. Jak porovnat exportované páry veřejného a soukromého klíče Openpgp?

  1. Jak vygenerovat pár klíčů SSH (s příklady)

  2. jak aktualizovat homebrew pomocí Cronu na Mac OS

  3. SSH:V privátní síti, jak přistupovat ke vzdálenému počítači ze zdrojového počítače bez použití veřejného klíče ssh

  1. Jak ověřit, že certifikát Ssh byl podepsán zadaným soukromým klíčem Ssh Ca?

  2. Jak získat veřejný klíč ze soukromého klíče Ssh?

  3. Jak vytvořit VPN