Anahtar görüşmesi yapılırken ssh tam olarak ne gönderiyor?


10

Kimlik dosyasını açıkça ssh olarak belirtirken:

ssh -i ./id_rsa ...

Ben ssh hata ayıklama izleme bu satırları var:

debug1: Offering public key: ./id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply

Ssh tarafından üretilen id_rsa, ortak RSA üssünü de içerdiği anlamına mı geliyor ? id_rsabiçimi "BEGIN PRIVATE KEY" bloğuyla özel anahtar içerdiğinden oldukça açık görünmektedir, bu nedenle "ortak anahtar sunmak" "ortak anahtarı sunucuya göndermek" dışında bir anlam ifade etmelidir.

DÜZENLE:

Açıklığa kavuşturmak için, "ortak anahtar sunan" hattının arkasında neler olduğunu bilmek istiyorum. İstemcinin birden fazla anahtarı varsa, hepsi sunucuya tek tek sunulacaktır.


Bu soruna eklemek için sunucu için meydan okumadan önce iyi bir anahtar var mı kontrol etmek için bir yöntem vardır. Zaten bir sunucum vardı çünkü şifreyi bile çözmeden anahtarımızı reddetti. İyi tanımlanmadığı için orada hata var.
Gopoi

Yanıtlar:


12

bir SSH sunucusuna bağlanmak ve genel / özel anahtar çiftinizle kimlik doğrulaması yapmak için önce genel anahtarınızı sunucu ile paylaşmanız gerekir.

bu sunucuya özel anahtar için genel anahtarı kopyalama ve eklemeden yapılır ~/ssh/authorized_keyskopya yoluyla / kopyalama, yapıştırma id_rsa.pubiçin ~/.ssh/authorized_keyssunucuda veya cat id_rsa.pub >> ~/.ssh/authorized_keyslisteye ekleme.

bağlandığınızda, sunucu bir meydan okumayı imzalamak için ortak anahtarınızı kullanır ve istemciniz id_rsameydan okumanın şifresini çözmek, sunucunun geneliyle yeniden şifrelemek host keyve geri göndermek için özel anahtarınızı kullanır .

ana bilgisayar, özel anahtarıyla yanıtınızın şifresini çözerek zorluğun şifresini çözdüğünüzü doğrular ve istemci / ana bilgisayar, ortak / özel anahtarlarınıza değil, paylaşılan verilere dayanarak şifreli bir bağlantı kurar.

exchange'deki NO POINT özel anahtarınız veya ana bilgisayarın özel anahtarı birbiriyle değiştirilmiş veya açıklanmıştır. ortak anahtarınız sunucuda depolanır, ancak bu yüzden bir KAMU anahtarıdır.


Evet, hepsi iyi ve iyi, ama tüm bunlar sunucu ile meydan okumayı şifrelemek için ortak anahtarı belirlemeden önce olur . Birkaç anahtar var ve hepsi sunucuya tek tek "sunulmaktadır". Bu tam olarak ne gerektirir? Ve evet, özel anahtarın gerçekten gönderilmediğinin farkındayım, muhtemelen bu satırı sorudan tamamen kaldırmalıyım. : P
Alex B

Belirttiğiniz zaman ssh -i keynamessh istemcisi anlatıyorsun tam HANGİ anahtarı sunucusuna bağlanmak için kullanıma planlıyoruz. ~/.ssh/istemcinizde bir düzine anahtar varsa , her anahtar yinelenmez. o arayacaktır ~/.ssh/id_rsa, ~/.ssh/id_dsaistemci içine kodlanır veya hangi anahtar o konak için belirtilen potansiyel birkaç diğer dosya adları ~/.ssh/config... Uzun lafın kısası; istemciniz sunucuya herhangi bir anahtar sunmuyor / sunmuyor.
cpbills

bağlandığınızda, / client / sunucunuzdaki sorgunun şifresini çözer ve ardından sorguyu şifrelemek, yanıtı göndermek için standart yerel özel anahtarlar listesine düşer. Sınama yanıtı başarısız olursa, bir sonraki sabit kodlu anahtar adına gidebilir / geçebilir / / o / private anahtarıyla yeniden şifreleyip tekrar deneyin. yine, genel ve özel anahtarlarınız oturum açma kimlik doğrulamasında sunucu ile paylaşılmaz / paylaşılmaz.
cpbills

1
oh, yorumunuzu tekrar okuyorum; ana bilgisayar: ana bilgisayar anahtarı ile meydan okumayı şifreler, istemci: ana anahtar ile meydan okuma şifresini çözer, istemci: özel anahtar ile meydan okumayı şifreler, ana bilgisayar: ana bilgisayardaki listelenen tüm genel anahtarlarla meydan okumayı çözme girişimleri ~/.ssh/authorized_keys, meydan okumanın ne olduğunu ve ne aradığını bilir çünkü, bir ortak anahtar kilidini açtığında, o anahtarı kullanmayı bilir.
cpbills

@cpbills, üzgünüm ben yönlendirilmiş bir ajan birkaç anahtar var, bu yüzden birden fazla anahtar sunulmaktadır bahsetmeyi unuttum (-vvv kimlik dosyasını belirtmek bile, sunulan hepsini gösterir).
Alex B

1

Genel / Özel Anahtar Şifrelemesi çok basit bir sisteme dayanmaktadır:

Sen tek yönlü şifreleme yapma yeteneğine sahip bir ortak anahtar ve yeteneğine sahip bir özel anahtara sahip de Cryption. Genel anahtar daha sonra dünyadaki herkese verilebilir ve hiç kimse şifrelenmiş verilerinizin şifresini çözemez, ancak özel anahtarınızla şifresini çözebileceğiniz verileri şifreleyebilirler.

Yani sorunuzun cevabı "Genel anahtarınız" dır.


Evet, teşekkürler, açık anahtarlı kripto paraların nasıl çalıştığını ayrıntılı olarak biliyorum, ancak SSH protokolünün ve anahtar formatın özelliklerini bilmek istiyorum. Genel üssü özel anahtar dosyasında saklayıp saklamadığını bilmek istemiyorum, ya da değil mi? Tüm bildiğim için "ortak anahtar sunmak" özel anahtarınız ile bir nonce imzalamak anlamına gelebilir, böylece sunucu karşılık gelen bir ortak anahtar bulabilirsiniz.
Alex B

Evet. ssh-keygen yapar -y size özel anahtarın ortak anahtarını verecek, tersi çalışmıyor
Mâtt Frëëman

1

Şu anda genel veya özel anahtarı göndermesi gerektiğini düşünmüyorum. Şifreleme, sunucu tarafından zaten bilinen düz metin üzerindeki özel anahtar kullanılarak istemci tarafından gerçekleştirilmelidir. Ana makine, şifreyi alabilen tek kişinin karşılık gelen özel anahtarı tutan ve böylece istemcinin kimliğini doğrulayan bir istemci olduğunu bilerek genel anahtar kullanarak bu iletinin şifresini çözebilir.

Ben diyor ki Offering public key: ./id_rsao (saklanan özel anahtarı kullandığı için ./id_rsasunucu tarafından bilinir ve daha sonra sunucu şifresiz eşleştiğini bu şifreli ve Onayla şifresini çözmek için ortak anahtarı kullanacak düz metin üzerinde şifrelemeyi gerçekleştirmek için). Ortak anahtar dosyasına ./id_rsa.pub, ilk anahtar oluşturulduktan sonra asla istemci tarafından ihtiyaç duyulmamalıdır. Bu sadece sunucu tarafından şifre çözme için kullanılır.


Böyle bir şey olduğundan şüpheleniyordum, ama bazı özellikler istedim (yani gerçek SSH anahtar müzakere protokolü). Neden reddedildiğinden emin değilim.
Alex B

Üzgünüm cevabım çok el salladı. SSH anahtar müzakeresinin özelliklerini bilmiyorum, sadece açık anahtarlı kimlik doğrulamasında gerekli olan genel müzakereler. Spesifik olmayan cevap için aşağı oylanmış olabilirim.
Trey Hunner
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.