Uzak bilgisayara SSH girmeye çalışıyor, ancak yine de şifre istiyor


18

Uzak bilgisayara SSH girmeye çalışıyor, ancak yine de şifre istiyor.

SElinux çalıştıran bir takım bilgisayarlarım var ve bunlardan sadece biri şifresiz ssh kullanarak bana zor zaman veriyor.

Bir ssh-copy-id yaptım ve anahtarımı .ssh / yetkili_anahtarlarında görebiliyorum.

./Ssh/* içindeki tüm dosyaları chmod 700 .ssh ve chmod 600

Bir ssh -v yaparsanız bu benim çıktı:

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to wcmisdlin05 [10.52.208.224] port 22.
debug1: Connection established.
debug1: identity file /home/jsmith/.ssh/identity type -1
debug1: identity file /home/jsmith/.ssh/id_rsa type 1
debug1: identity file /home/jsmith/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'wcmisdlin05' is known and matches the RSA host key.
debug1: Found key in /home/jsmith/.ssh/known_hosts:9
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_501' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_501' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Next authentication method: publickey
debug1: Offering public key: /home/jsmith/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/jsmith/.ssh/identity
debug1: Trying private key: /home/jsmith/.ssh/id_dsa
debug1: Next authentication method: password

Birisi bana neden bu bir uzak bilgisayarda çalışmadığını söyleyebilir misiniz?


5
Bakılacak /var/log/secure(eğer izinlerini) & /var/log/messages( 's SELinux'un. Eğer) Aksi takdirde, ne öyle arasında bir uyumsuzluk var ~/.ssh/authorized_keysve hangi SSH istemci tarafından gönderiliyor.
Aaron Copley

Yanıtlar:


17

Sık sık benzer karşılaştığınız hata içeren CentOS 6 makinelerde ssh-copy-idve SELinux'un.

Ne zaman ssh-copy-idyetkili anahtarlarını oluşturur bu uygun izinlere ile oluşturur, ancak yanlış SELinux'un etiketle dosyaları. Bunun düzeltmesi, bu komutu kullanarak etiketleri ilke varsayılanlarına geri yüklemektir:

restorecon -R ~/.ssh


1
İyi cevap. Ancak bir SELinux acemi için, listeyi ve izinleri nasıl inceleyeceğinizi bilmek de ilginç olacaktır.
zrajm

14

Mümkünse, bunlar sunucu tarafında her zaman çok daha kolay hata ayıklanır. Hata ayıklama modunda başka bir bağlantı noktasında bir sshd başlatabilirseniz, anahtarın neden reddedildiğini hemen söyleyecektir (benim tahminim, ana dizininizin grup yazılabilir olmasıdır). Örneğin, 2222 numaralı bağlantı noktasında hata ayıklama modunda bir sshd başlatabilir /usr/sbin/sshd -d -p 2222ve sonra ile bağlanabilirsiniz ssh -p 2222 user@remotehost.


4
Senin vahşi tahmin için çok teşekkürler (ana dizin grup yazılabilir). Bu benim durumumdu.
Sergei Kurenkov

@skwllsp - durumunuz için doğru cevap ise lütfen bu yanıtı kabul edin.
Deer Hunter

1
@Deer Hunter, Soru ben değil, başka bir kişi tarafından soruldu. Bu cevabı kabul edemem.
Sergei Kurenkov

@skwllsp - benden büyük bir an, üzgünüm.
Deer Hunter

chmod 744 benim ana dizine çözüldü - bu cevap ile ilgili, teşekkürler!
Brandt Solovij

3

SElinux'a atıfta bulunan poster, sorunum için kafasına çiviyi vurdu, selinux kullanmak istemiyorum, ancak devre dışı bırakmayı unutmuştum ve sunucu önyüklemede selinux etkinleştirildi.

ssh -vHata ayıklama yardımcı oldu. Anahtar kabul edilir:

debug1: Found key in /var/lib/amanda/.ssh/known_hosts:19
debug1: ssh_rsa_verify: signature correct

Ve sonra hatayı alıyorum

debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

Benim düzeltme selinux ile kapatmak setenforce 0ve sonra / etc / selinux devre dışı bırakmak oldu. Sonra ssh şifresiz giriş benim için çalıştı.


1

Bunu bir süre önce RHEL5'te yaşadım (kullandığınız dağıtımın bu olup olmadığını bilmiyorum) ve sadece ssh-copy-id kullandığım zaman buldum. Anahtar dosyasını doğru klasöre scp'lemeyi ve elbette izinleri sıfırlamayı deneyin


0

Benim durumumda, sorun yanlış authorized_keysdosya biçimindeydi .

Olmalıdır hiçbir yeni satır biçimi tanımı (arada ssh-rss, ssh-dss, ..) ve ortak anahtarın kendisi.


0

Daha önce ssh ve keyfiles ile sorun yaşadım. Bu vesileyle, kimlik anahtarımı " id_rsa" olarak yeniden adlandırmak yardımcı oldu. Ne yazık ki farklı sunucular için farklı anahtarlarım var. Dolayısıyla bu yaklaşımın sınırlı bir faydası vardır. Bir kereye mahsus olarak yardımcı olabilir.

İkincisi bugün yine sadece bir XTerm oturumunda bu hatayı aldım ve her şey aynı sunucu / hortum makinesine 6 xterm oturumunda harika çalışıyor. Bu yüzden envher iki seanstaki çıktımı karşılaştırdım. Bunun çalışmayan oturumda olmayan çalışma oturumu olduğunu buldum:

SSH_AUTH_SOCK=/run/user/1001/keyring/ssh 

Bu ödevi çalışmayan oturuma yapıştırdım:

export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
ssh  user@host
... Welcome ...

Başka bir deyişle, bu çözüm benim için çalıştı.

SSH_AUTH_SOCKET üzerinde biraz kontrol yaptım. Bu cevaptan:

aracının diğer işlemlerle iletişim için kullandığı unix dosya soketinin yolu

Sanırım bu, sonuca dayanan anahtar çözünürlük için çok önemli.


-1

debug1: Ortak anahtar sunuyor: /home/jsmith/.ssh/id_ rsa

...

debug1: Özel anahtar deneniyor: /home/jsmith/.ssh/id_ dsa

Bana öyle geliyor ki özel / genel anahtar sadece eşleşmiyor. Anahtar adları bize ortak anahtarın RSA anahtarı ve özel anahtarın DSA olduğunu söyler.

scpSunucuya yeni bir çift ve ortak anahtar oluşturmaya çalışın .


iki anahtarın parmak izlerini ssh-keygen -l -f ~/.ssh/id_rsa' and ssh-keygen -l -f ~ / .ssh / id_rsa.pub` ile karşılaştırarak durumun böyle olduğunu doğrulayabiliriz . Ancak bir uyumsuzluk olsa bile anahtarları sunacağına inanmıyorum. Bence sadece bir sunucu tarafından henüz belirlenmemiş bir nedenle reddediliyor, bu yüzden başka bir deniyor.
güveç

-2

./Ssh ve kullanıcının ana dizinindeki, anahtar dosyadaki ve yetkili_anahtarlar dosyalarındaki yetkilileri kontrol etmenizi öneririm, çünkü başka hiç kimsenin ssh şifresiz bağlantının çalışmasını istiyorsanız sahibinin oraya yazmasına ve okumasına izin verilmelidir. Bu hem kaynak hem de hedef makinelerle ilgilidir. Dürüst olmak gerekirse, bazen daha büyük haklar olsa bile işe yarar, ancak olmamalıdır.


1
Lütfen kontrol edin: serverfault.com/questions/464411/… . Başkalarının yazdıklarını okumadığınız için yayınınız da gereksizdir.
Deer Hunter
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.