Zkuste toto:
ssh-keyscan -t rsa [ip_address]
Vezměte výstup a vložte jej do .ssh/known_hosts. Nyní, pokud chcete známé_hostitele hashovat, udělejte toto:
ssh-keygen -H
upravit: Zde je řešení s jedním příkazem. Používá název hostitele a IP adresy a obojí hashuje.
ssh-keyscan -Ht rsa [hostname],[IP address] >> known_hosts
Odpověď od kschurig bude fungovat, ale není nutně nejbezpečnější. Získává bonusové body za to, že uděláte něco navíc, abyste mohli identifikovat server podle více než jednoho URI – tj. názvu hostitele a IP adresy. To znamená, že můžete nadále přidávat platné URI tohoto hostitele rozšířením seznamu odděleného čárkami.
Hledal jsem však světský způsob, jak obejít neznámou hostitelskou ruční interakci klonování git repo, jak je uvedeno níže, a mělo by to pomoci vysvětlit, co se děje a jak se můžete vyhnout této části skriptování některých věcí souvisejících s SSH:
[email protected]:~$ git clone [email protected]:viperks/viperks-api.git
Cloning into 'viperks-api'...
The authenticity of host 'bitbucket.org (104.192.143.3)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?
Poznamenejte si otisk klíče RSA...
Takže toto je věc SSH, bude to fungovat pro git přes SSH a obecně jen věci související s SSH...
[email protected]:~$ nmap bitbucket.org --script ssh-hostkey
Starting Nmap 7.01 ( https://nmap.org ) at 2016-10-05 10:21 EDT
Nmap scan report for bitbucket.org (104.192.143.3)
Host is up (0.032s latency).
Other addresses for bitbucket.org (not scanned): 104.192.143.2 104.192.143.1 2401:1d80:1010::150
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 1024 35:ee:d7:b8:ef:d7:79:e2:c6:43:9e:ab:40:6f:50:74 (DSA)
|_ 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40 (RSA)
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 42.42 seconds
Nejprve nainstalujte nmap do svého denního ovladače. nmap je velmi užitečný pro určité věci, jako je zjišťování otevřených portů a toto -- ruční ověřování otisků SSH. Ale zpět k tomu, co děláme.
Dobrý. Buď jsem zkompromitován na mnoha místech a strojích, které jsem to zkontroloval – nebo věrohodnějším vysvětlením toho, že všechno je hunky dory, je to, co se děje.
Tento „otisk prstu“ je pouze řetězec zkrácený jednosměrným algoritmem pro naše lidské pohodlí s rizikem, že se více než jeden řetězec převede na stejný otisk prstu. Stává se to, říká se jim kolize.
Bez ohledu na to, zpět k původnímu řetězci, který můžeme vidět v kontextu níže.
[email protected]:~$ ssh-keyscan bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
no hostkey alg
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-129
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-123
no hostkey alg
Před časem tedy máme způsob, jak požádat původního hostitele o formu identifikace.
V tomto okamžiku jsme manuálně stejně zranitelní jako automaticky – řetězce se shodují, máme základní data, která vytvářejí otisk prstu, a mohli bychom o tato základní data v budoucnu požádat (předcházet kolizím).
Nyní použít tento řetězec způsobem, který zabrání dotazování na pravost hostitelů...
Soubor známých_hostitelů v tomto případě nepoužívá položky prostého textu. Hašované položky poznáte, když je uvidíte, vypadají jako hash s náhodnými znaky namísto xyz.com nebo 123.45.67.89.
[email protected]:~$ ssh-keyscan -t rsa -H bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
První řádek komentáře se rozhořčeně objeví - ale můžete se ho zbavit jednoduchým přesměrováním pomocí konvence ">" nebo ">>".
Protože jsem se ze všech sil snažil získat neposkvrněná data, která budou použita k identifikaci „hostitele“ a důvěryhodnosti, přidám tuto identifikaci do svého souboruknown_hosts v adresáři ~/.ssh. Protože bude nyní identifikován jako známý hostitel, nedostanu výše uvedenou výzvu, když jste byl mladý.
Díky, že jste se mnou, tady to máte. Přidávám klíč bitbucket RSA, abych tam mohl neinteraktivním způsobem interagovat se svými git repozitáři jako součást pracovního postupu CI, ale cokoli si děláte, co chcete.
#!/bin/bash
cp ~/.ssh/known_hosts ~/.ssh/known_hosts.old && echo "|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==" >> ~/.ssh/known_hosts
Takže takhle zůstaneš pro dnešek pannou. Totéž můžete udělat s githubem, když budete ve svůj čas postupovat podle podobných pokynů.
Viděl jsem tolik příspěvků o přetečení zásobníku, které vám říkaly, abyste programově přidali klíč naslepo bez jakékoli kontroly. Čím více kontrolujete klíč z různých počítačů v různých sítích, tím více můžete mít důvěru, že hostitel je ten, o kterém se říká, že je – a to je to nejlepší, co můžete od této vrstvy zabezpečení doufat.
ŠPATNĚssh -oStrictHostKeyChecking=žádný název hostitele [příkaz]
ŠPATNĚssh-keyscan -t rsa -H název hostitele>> ~/.ssh/known_hosts
Nedělejte ani jednu z výše uvedených věcí, prosím. Máte příležitost zvýšit své šance vyhnout se tomu, aby někdo odposlouchával vaše datové přenosy prostřednictvím útoku muže uprostřed – využijte této příležitosti. Rozdíl je doslova v ověření, že klíč RSA, který máte, je klíč bona fide serveru a nyní víte, jak tyto informace získat, abyste je mohli porovnat, abyste spojení mohli důvěřovat. Pamatujte, že více srovnání z různých počítačů a sítí obvykle zvýší vaši schopnost důvěřovat připojení.