ssh komut satırı sunucu ana bilgisayar anahtarı parmak izini belirtin


15

sshKomut satırını (OpenSSH) kullanarak sunucunun ana bilgisayar anahtarı parmak izini belirtebilir miyim?

Bu, winscp.com kullanarak (örn. -hostkey="ssh-rsa 2048 AA:BB:CC...etc

Adam sayfasını birkaç kez okudum, orada bariz özledim özür dilerim.

Sadece otomatik olarak bir ana bilgisayar anahtarını kabul etmek istemiyorum ve kullanıcının kendi güncellemelerini istemiyorum known_hosts, bunun yerine ana bilgisayar anahtarını komut satırında bir biçimde belirtmek istemiyorum .


-o UserKnownHostsFile geçici bir dosyayla çalışabilir.
payo

Yanıtlar:


16

OpenSSH'de bir ana bilgisayar anahtarının parmak izini iletmek için komut satırı seçeneği yoktur.

Gerçi geçici bir dosyayı (ile aynı formatta known_hosts) sshkullanabilir ve aşağıdakileri kullanarak kullanabilirsiniz -o UserKnownHostsFile:

ssh -o "UserKnownHostsFile my_temp_known_host" host.example.com

Bkz ssh(için -o) ve ssh_config(için UserKnownHostsFileman sayfaları).


Ayrıca StrictHostKeyChecking yes.


Komut satırından rsa anahtar parmak izini otomatik olarak kabul etmesinde önerildiği gibi , bunu başarmanıza izin verecek küçük bir komut dosyası yazabilirsiniz:

#!/bin/bash

TEMPFILE=$(mktemp)
echo "$1" > $TEMPFILE

ssh -o "UserKnownHostsFile $TEMPFILE" ${@:2}

rm $TEMPFILE

Komut dosyasını çağırırsanız, ssh_known_hostanahtarı ilk argüman olarak ileterek kullanabilirsiniz:

ssh_known_host '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==' git@github.com

Herhangi bir ipucu neden -o UserKnownHostsFile=<(echo "hostname ssh-rsa ...")çalışmıyor?
kasperd

2
@kasperd Muhtemelen tarafından oluşturulan fd <()yalnızca bir kez okunabilir, sshçünkü dosyayı tekrar tekrar okur.
Martin Prikryl

StrictHostKeyChecking'i kullanarak yanıt ve önerileriniz için teşekkür ederiz. Bu çözüm benim için işe yarayacak.
Payo

1
Komut dosyası çözümünün ortadaki adam saldırısını önlediğini belirtmeyi unuttum
RDP
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.