Yanıtlar:
Parmak izi, genellikle "/etc/ssh/ssh_host_rsa_key.pub" temelli olan ve genellikle bağlandığınız konağın kolay tanımlanması / doğrulanması için, Sunucunun Genel anahtarına dayanır.
Parmak izi değişirse, bağlandığınız makine genel tuşlarını değiştirdi. Bu kötü bir şey olmayabilir (ssh'nin yeniden kurulmasıyla olur), ancak aynı etki alanı / IP'deki farklı bir makineye bağlandığınızı (yük dengeleyici gibi bir şeyden bağlanırken olduğu gibi) veya saldırganın bir şekilde kullanıcı / pw'nizi çağırabilecek farklı bir ana bilgisayara bağlanmak için ssh bağlantınızı durdurduğu / yeniden yönlendirdiği ortadaki bir adam saldırısı ile hedef alınıyor.
Alt satır: Değişen parmak izi konusunda uyarılırsanız, dikkatli olun ve güvenli bir bağlantı üzerinden doğru ana bilgisayara bağlandığınızı iki kez kontrol edin. Bu çoğu zaman zararsız olsa da, potansiyel bir sorunun bir göstergesi olabilir
Bakınız: http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html
ve: http://en.wikipedia.org/ wiki / Public_key_fingerprint
~/.ssh/known_hosts
. Bu şekilde, sunucuya bağlandığınızda, genel anahtarını kaydettiğinizden beri SSH istemciniz bu sunucuyu tanıyacaktır known_hosts
. Dolayısıyla, aslında gerektiğini asla SSH istemcisi anlatır ne zaman "evet" "konak otantisitesinden edilemez" derler. Her zaman önce sunucunun ortak anahtarını eklemelisiniz.
~/.ssh/known_hosts
önceden dosya ve asla söylemek SSH istemcisi anlatır ne zaman evet "istemci otantisitesinden edilemez" veya anlatır ne zaman "sunucunun genel anahtar olmuştur değiştirilen".
Şunu ssh-keygen
gibi kullanarak bir ortak anahtar için parmak izi oluşturabilirsiniz :
ssh-keygen -lf /path/to/key.pub
Somut örnek (eğer bir RSA ortak anahtarı kullanıyorsanız):
$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)
İlk bölüm (2048)
bit cinsinden anahtar uzunluğu, ikinci bölüm (00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)
genel anahtarın parmak izi ve üçüncü bölüm genel anahtar dosyasının kendisinin olduğu yerdir.
ssh-keygen -lf
şeyi yapacağını düşündüğümden örneği güncelledim .
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
. Ayrıca SSH girişlerinde localhost'a gösterilen parmak izini gösterir.
ssh-keygen
bildirildi sha256
parmak izi yok. md5
Parmak izlerini almak için koştum ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
. #archlinux
ssh -o FingerprintHash=md5
veya benzerini ssh_config
kullanan şeylerin içinde ve üzerinde . ssh
scp
Parmak izi, Base64 kodlu ortak anahtar içindeki ikili veri üzerindeki MD5'tir.
$ ssh-keygen -f foo
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in foo.
Your public key has been saved in foo.pub.
The key fingerprint is:
65:30:38:96:35:56:4f:64:64:e8:e3:a4:7d:59:3e:19 andrew@localhost
The key's randomart image is:
+--[ RSA 2048]----+
| +*..+* |
| =. +.= |
| . . .o . |
| o+ E |
| S= . + o |
| . o o + |
| . . |
| |
| |
+-----------------+
$ cat foo.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp andrew@localhost
$ echo 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp' \
| base64 -D | md5
6530389635564f6464e8e3a47d593e19
Md5sum 6530389635564f6464e8e3a47d593e19, anahtar üretildiğinde, yalnızca ayırıcı sütunlar olmadan görüntülenen parmak izidir.
Ancak, Amazon'un EC2 Anahtar Çiftleri konsolunda gösterdiği parmak izleriyle uğraşıyorsanız, ne yazık ki bu farklı bir canavar olabilir . 32 basamaklı altıgen bir dize ise, yukarıdaki standart MD5 SSH açık anahtar parmak izidir. Ancak, 40 onaltılık basamak ise, özel anahtarın SHA1'ini PKCS # 8 biçiminde alarak hesaplanan bir parmak izidir :
$ openssl pkcs8 -in foo -nocrypt -topk8 -outform DER | openssl sha1 -c
e2:77:39:d3:53:a7:62:68:5f:da:82:0e:99:61:30:64:a2:88:c4:58
awk '{print $2}' /path/to/keyfile.pub
veya benzeri.
cat id_rsa.pub | cut -d' ' -f2 | base64 -d | md5sum
Bir SSH anahtar dosyasını kontrol etmek istiyorsanız, github tarafından "Dağıtma anahtarı" ile bildirilenle aynı olup olmadığını kontrol etmek istiyorsanız, bu tam size göre ...
Özel URL’den: https://github.com/<username>/<repo_name>/settings/keys
Terminalde:
$ ls -l id*
-rw------- 1 bruno staff 1675 Mar 29 17:03 id_rsa
-rw-r--r-- 1 bruno staff 416 Mar 29 17:03 id_rsa.pub
$ ssh-keygen -E md5 -lf id_rsa
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e ec2-user@ip-10-2-1-16.ec2.internal (RSA)
$ ssh-keygen -E md5 -lf id_rsa.pub
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e ec2-user@ip-10-2-1-16.ec2.internal (RSA)
Hem özel hem de genel anahtarlar için aynı parmak izini aldığınızı fark edeceksiniz.
Aynı komut, https://github.com/<username>.
İşte bundan yararlanmak için kullanabileceğiniz bir astar.
$ curl -sL https://github.com/RichardBronosky.keys | while read; do echo -e "\nkey #$((++i)):"; ssh-keygen -E md5 -lf - <<<"$REPLY"; echo $REPLY; done
key #1:
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e no comment (RSA)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJGT35gvsFveu+80qgurrLHId0h55E9jliM7Fo0mV9b7eg3EfyagkAcJUSMFkoov3HY4CW0yzOc7WlN57ABwvpRz1ioFDex0n0FkjoSEs5ROeT1OneRK6Bf6XnplgPuQ/LSSkv3kmK6I29R+YWi6TjDvLLoA5BrXJjOMfUv36jxWCDtk/5ZdhMZqhsMuDm06Jg5JBu6n5jQaZkmaIaunz7vOfwVG9LoCI+MYyIdo2S4VTva7Ee7jfAvgSUUgHTjhzsPO0/Ww5a/Kz2ehXW27aJxj/QPLfYR2LmTMbQKm3WpB8P1LjoiU7zjPoVoZ43a4P2JLUDidGKCd3eY5b5xewz
key #2:
2048 MD5:f7:98:f1:0b:73:c6:2a:21:00:7a:70:1d:0f:cf:d8:cc no comment (RSA)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCQsZrjwKjB4WnE4SwVdDX5eEMxKzPHFBVKKpo9vvWUXRQwdTZy6iVOkyF26IPR+xDPzslzXOClKXUrWEh6La/EMpRwuMrWAbMIJFeDHOb56q4azgopoJmMJHo0yxGu0Ts4XszMACYRhlG6uK2AP5SYiOTp1zKPFjazXAdwLXyOvJurzy6KKuGJdSs/sj9+4uehgyRNOhehCSfg71tJJYwRvO2DDfLgaVEKOgZx58gEnJfhhz9D7rbvdZNhw/hCgtVNJaQF9Mdke2OPwWSo8i0/XNb9Bu/GRXqwMZrxDBhyzieocW40cwuzxWfzoi03aISdtQ1HtawH8+/sswviM1+B
ssh-keygen -r host.name.com
Bir sshd örneğinde yapılandırılmış tüm ortak anahtarların parmak izlerini verir.
Bunlar daha sonra DNS SSHFP kayıtlarına konulabilir .