Bu yüzden, bir git repo klonlamanın bilinmeyen ana manuel etkileşimi aşağıda gösterildiği gibi atlamak için sıradan bir yol arıyordum:
brad@computer:~$ git clone git@bitbucket.org: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)?
RSA anahtar parmak izini not edin ...
Yani, bu bir SSH meselesi, bu genel olarak SSH'ye gitmek için çalışacak ve genel olarak sadece SSH ile ilgili şeyler ...
brad@computer:~$ 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
İlk önce nmap'ı günlük sürücünüze yükleyin. nmap, açık portları tespit etmek ve bunun gibi SSH parmak izlerini elle doğrulamak gibi bazı şeyler için oldukça faydalıdır. Ama ne yaptığımıza geri dönelim.
İyi. Ya kontrol ettiğim birçok yerde ya da makineden ödün verdim ya da alçakgönüllü olan her şeyin daha makul bir açıklaması oluyor.
Bu 'parmak izi', aynı parmak izini çözme birden fazla dize riski altında insan rahatlığımız için tek yönlü bir algoritma ile kısaltılmış bir dizedir. Olur, çarpışma denir.
Ne olursa olsun, aşağıdaki bağlamda görebileceğimiz orijinal dizgiye geri dönelim.
brad@computer:~$ 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
Bu yüzden, vaktinden önce, asıl ev sahibinden bir tür kimlik isteme yolumuz var.
Bu noktada manuel olarak otomatik olarak savunmasızız - dizeler eşleşiyor, parmak izini oluşturan temel verilere sahibiz ve gelecekte bu temel verileri (çarpışmaları önler) isteyebiliriz.
Şimdi bu dizgiyi ana bilgisayarların gerçekliğini sormayacak şekilde kullanmak için ...
Bu durumda known_hosts dosyası düz metin girişleri kullanmaz. Bunları gördüğünüzde karma girişleri bilirsiniz, xyz.com veya 123.45.67.89 yerine rasgele karakterlere sahip hash gibi görünürler.
brad@computer:~$ 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==
İlk yorum satırı çıldırtıcı bir şekilde ortaya çıkıyor - ancak ">" veya ">>" kongre ile basit bir yönlendirme ile ondan kurtulabilirsiniz.
Bir "ev sahibi" ve güveni tanımlamak için kullanılacak sınırsız veri elde etmek için elimden gelenin en iyisini yaptığım gibi, bu kimliği ~ / .ssh dizinimdeki known_hosts dosyasına ekleyeceğim. Şimdi bilinen bir ev sahibi olarak tanımlanacağı için, siz gençken yukarıda belirtilen istemleri alamayacağım.
Bana sadık kaldığın için teşekkürler, işte geliyorsun. Bitbucket RSA anahtarını ekliyorum, böylece CI iş akışının bir parçası olarak etkileşimli olmayan bir şekilde git depolarım ile etkileşime girebiliyorum, ama ne istersen onu yap.
#!/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
Demek bugün böyle bir bakire kalıyorsun. Kendi zamanınızdaki benzer talimatları izleyerek aynı şeyi github ile yapabilirsiniz.
Çok fazla yığın taşması mesajı gördüm ve anahtarı herhangi bir denetime gerek kalmadan programlı olarak anahtarı kör olarak eklemenizi söylüyor. Farklı ağlardaki farklı makinelerden anahtarı ne kadar çok kontrol ederseniz, ana makinenin söylediği kişi olduğundan o kadar çok güvenirsiniz ve bu güvenlik katmanından umut edebileceğiniz en iyi şey budur.
YANLIŞ
ssh -oStrictHostKeyChecking = hostname yok [komut]
YANLIŞ
ssh-keyscan -t rsa -H ana bilgisayar adı >> ~ / .ssh / known_hosts
Yukarıdakilerden hiçbirini yapma lütfen. Orta saldırıda bir adam aracılığıyla veri aktarımlarınızdan gizlice dinlemekten kaçınmak için şansınızı artırma fırsatı verilir - bu fırsatı yakalayın. Aradaki fark kelimenin tam anlamıyla, sahip olduğunuz RSA anahtarının iyi niyetli sunucudan biri olduğunu ve şimdi bu bilgileri nasıl karşılaştıracağınızı bildiğinizden emin olun ki bağlantıya güvenebilirsiniz. Sadece farklı bilgisayarlardan yapılan daha fazla karşılaştırmayı unutmayın ve ağlar genellikle bağlantıya güvenme yeteneğinizi arttırır.