Bu ssh hatası ne anlama geliyor?


9

Bu benim son çarem. Sorunu saatlerdir burada çözmeye çalışıyorum.

İşte anlaşma: Özel anahtarımı 1 numaralı makineden 2 numaralı makineye kopyaladım. Makine # 1, ssh ile bir sunucuya genel anahtarım iyi bir şekilde bağlanabiliyor, ancak sunucu # 2, sunucuya bağlanmaya çalışırken aşağıdaki çıktıyı veriyor:

$ ssh -vvv -i /home/kevin/.ssh/kev_rsa user@192.168.1.244 -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace

...


Permission denied (publickey).

Açıkçası daha fazla hata ayıklama çıktı var ve ben istek üzerine sağlayabilir. Ancak özel anahtar dosyamı sevmediğine ikna oldum.

Ayrıca, makinenin # 1'inden makinenin # 2'sine nasıl kopyaladığımla ilgili olduğu konusunda bir şüphem vardı. Özel anahtardaki metni bir flash sürücüye kopyaladım / yapıştırdım. Bu sorun olabilir, ancak, bu yöntemi başka bir çalışan özel anahtar dosyasında çoğalttığımda ve orijinalde farklı bir şekilde kopyaladığımda / yapıştırılana bir fark yaptığımda, aynılar.

Bununla mücadele ediyorum. Anahtarımı neden sevmediği hakkında biraz daha bilgi alabilirsem, düzeltebilirim. Bununla ilgili herhangi bir fikri olan var mı? Bir yerde ssh'ye bir dosyanın aslında bir RSA anahtarı olduğunu söyleyen bazı meta veriler var mı?


Peki /var/log/auth.logsunucuda ne diyor?
womble

Açıklamak için, makine 1'deki ortak anahtar sunucuya bağlanır. Makine 1'de çalışan ve makine 2'de çalışan özel anahtar sunucuya bağlanmaz mı?
Dru

Her iki makinede de aynı anahtar çiftine sahibim ve ortak anahtar sunucuda. Anahtarları, sunucuya bağlanmada sorun olmayan istemci makine 1'den, bu kimlik doğrulama sorununa sahip olan ev bilgisayarıma (makine 2) yapıştırdım.
kevin

@womble, Ne yazık ki, sunucuya erişemiyorum, bu anladım eğer ben sağ ssh mümkün olacak .. Ahh, ironi ...;)
kevin

İki istemci makinedeki işletim sistemleri nelerdir? Özel anahtarın transferi açılış satırından önce satır sonlarını veya eklenen metni (muhtemelen boş satırlar veya boşluklar) munged olabilir mi?
Stobor

Yanıtlar:


7

Deneyimlerime göre, en yaygın iki anahtar tabanlı kimlik doğrulama hatası

  1. Üzerinde uygunsuz geniş izinler $HOME/.sshdizinine
  2. Genel anahtarı uzaktaki sisteme kopyalama hatası

Dosya İzinleri

OpenSSH sizi kendinizden korumak için çok şey yapar. Bunun gerçekleşmesini etkileyen en kullanıcı yolu, yerel ssh klasörünüze kimlerin erişebileceği konusunda kısıtlamalar uygulamaktır. Gerçekten sadece ve sadece siz dizine erişmenizi istiyorsunuz. Ve uid = 0 olan herkes, ama bunun iyi bir yolu yok. Yapmanız gereken tek şey izinlerinizi değiştirmek: chmod -R go-rwx ~/.sshBu, .ssh dizininin altındaki herhangi bir dosyanın sahibi, yani siz dışındaki tüm kullanıcılardan okuma, yazma ve yürütme haklarını kaldıracaktır .

Yetkili Anahtar Sorunları

Genel anahtarınızı içeren dosya $HOME/.ssh/authorized_keys, özel anahtarın nasıl kabul edileceğini anlamak için SSH için çok özel bir forma uymalıdır. Her anahtar en az 2 alandan oluşmalıdır

  1. Kullanılan anahtar türü (RSA, DSA, RSA1, vb.)
  2. anahtar

Her anahtarın tüm seçenekleri ve bileşen parçaları ile birlikte bu dosyadaki her satırda bir tane listelenmesi gerekir. Anahtarlar çok uzun olma eğiliminde olduklarından, genellikle terminalinizde iki çizgi olarak görünür ve görünürler. Bu bazen kopyalama / yapıştırma girişimi sırasında tahribat yaratacaktır, çünkü bazen anahtarın ekranınızın üzerine sarıldığı yere bir veya daha fazla yeni satır eklenir. Bu sorunu çözmek bir kabuk acemi için biraz daha zor olabilir .

Çalıştırmayı deneyin
wc -l ~/.ssh/authorized_keys
Bu, dosyadaki satır sayısını yazdırır. Bu sayıyı dosyada olmasını beklediğiniz anahtar sayısıyla karşılaştırın. Yalnızca bu anahtarı kabul edecekseniz, yetkili anahtar dosyanızla aynı biçimde olduğundan, ortak anahtar dosyasının bir kopyasını da oluşturabilirsiniz. Gibi bir şey
scp -p ~/.ssh/kev_rsa.pub remotehost:~/.ssh/authorized_keys
veya aynı sistemde ortak anahtarınız varsa yapabilirsiniz
cat ~/.ssh/kev_rsa.pub >> ~/.ssh/authorized_keys

Ayrıca, uzak ana bilgisayardaki günlük dosyasına bakın ve orada herhangi bir hata bildirilip bildirilmediğine bakın. Dosyalar büyük olasılıkla ya /var/log/secure.logya olacaktır /var/log/auth.


1
Merhaba, Burada gösterdiğiniz çaba için teşekkür ederiz. Bunu takdir ediyorum. Kesinlikle bir izin sorunu değil. İzinlerin doğru olduğunu doğruladım. (Bunu bir uyarı olarak eklemeliydim). Ayrıca, şu anda orijinal anahtarlara erişememe rağmen, kullandığım anahtarı kopyalamak için kullandığım işlemi çoğalttım. Hatta dosyaların aynı olduğunu doğrulamak için bir md5sum yaptım. Mantıklı olmak?
kevin

1
Ve yine, sunucuya erişemiyorum. Burada tüm sorunun bir tür ...;)
kevin

@Scott: ortak anahtarmake a copy of the private key file olmalıdır (örneklerinizde gösterildiği gibi)
mlp

0

Bununla birlikte, muhtemelen makine 2'nin sunucuya bağlanması için yeni bir anahtar çifti oluşturmanız gerekecektir. Genel anahtar genellikle onları oluşturanların kullanıcı ve makine adını listeler. Bu, sunucudaki yetkili_anahtarlar dosyanızda görünür olmalıdır.


2
Bunları görmezden geldi izlenimi altındaydım, sadece yetkili_anahtarları görüntülerken bunları tanımlamanıza yardımcı olacak yorumlar. Her neyse, yine anahtarları kopyaladım / yapıştırdım. Yani aynılar. Ana bilgisayar adınızı kontrol ettiğinden ciddi olarak şüpheliyim. Eğer öyleyse, bunu kolayca değiştirebilirim. Ne oluyor, ben yine de deneyeceğim ...
kevin

0

Verdiğiniz hata ayıklama iletileri, özel bir anahtar dosyasının, aslında bir ortak anahtar / yetkili ana bilgisayar dosyası olduğu varsayılarak okunduğu anlamına gelir. Bu ölümcül bir hata olmayabilir (bu tür mesajları çalışan bağlantılar için bile alıyorum). "Teklif" veya "gönderdik" hakkında bir şey söylüyor mu?


-3

Ssh yapılandırma dosyalarını iki sunucu arasında karşılaştırmayı deneyin.

yani. cat / etc / sshd_config gibi bir şey


Daha açık olmalıydım. İki istemci, bir sunucu var. Sunucuya veya diğer istemci makineye erişemiyorum. Bu lanet anahtar kimlik doğrulaması yapılır yapılmaz sunucuya erişebileceğim;)
kevin
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.