SSH şifre olmadan localhost nasıl?


17

EDIT: Tam olarak ne yapıldığını koymak.

Ben localhostbir şifre olmadan SSH gerekir , (genel anahtarları ile) her zamanki gibi çalışmaz.

user@PC:~$ rm -rf .ssh/*
user@PC:~$ ssh-keygen -t rsa > /dev/null 
Enter file in which to save the key (/home/user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
user@PC:~$ ls .ssh/
id_rsa  id_rsa.pub
user@PC:~$ ssh-copy-id -i localhost 
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is f7:87:b5:4e:31:a1:72:11:8e:5f:d2:61:bd:b3:40:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
user@localhost's password: 
Now try logging into the machine, with "ssh 'localhost'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

user@PC:~$ ssh-agent $SHELL
user@PC:~$ ssh-add -L
The agent has no identities.
user@PC:~$ ssh-add 
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
user@PC:~$ ssh-add -L
ssh-rsa ...MY KEY HERE

user@PC:~$ ssh-copy-id -i localhost 
user@localhost's password: 
Now try logging into the machine, with "ssh 'localhost'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

user@PC:~$ ssh localhost echo 'testing'
user@localhost's password: 

user@PC:~$ 

Son komutta da görebileceğiniz gibi hala şifre soruyor !!! Bunu nasıl düzeltebilirim ?? Ubuntu-10.04, AçıkSSH_5.3p1

EDIT2:

SSHD hakkında bilgi ekleme

user@PC:~$ cat /etc/ssh/sshd_config | grep Authentication
# Authentication:
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
ChallengeResponseAuthentication no
# PasswordAuthentication yes
#KerberosAuthentication no
#GSSAPIAuthentication no
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.

EDIT3: $ ssh -vv localhost'tan reklam sonucu

$ssh -vv localhost
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
user@localhost's password: 

EDIT4:

Sadece dosyaların aynı olup olmadığını kontrol edin ve md5sum aynı fikirde


Eğer var mı RSAAuthentication yesve PubkeyAuthentication yes/ etc / ssh / sshd_config içinde? Ssh -vv localhost ne gösteriyor? Ben sadece 10.04 bir kutu üzerinde bu denedim ve hiç problem yaşamadım ..
Doon

Hy Doon, gerçekten .. Her ikisine de evet var. Soruda ssh -vv çıktısını ekledim.
Canesin

Zaten erişiminiz varsa neden localhost'a ssh ihtiyacınız var?
vtest

Paralel işleme yazılımları yerel ssh / rsh kullanır
Canesin

Lütfen soruyu cevaplamayın veya başlığa "ÇÖZÜLMÜŞ" yazmayın. Bir cevap vererek doğru şeyi yaptın. Cevabı kabul ettikten sonra, sistem sorunun çözüldüğünü gösterecektir.
ChrisF

Yanıtlar:


10

Her şeyden önce, ne yaptığınızı anlamalısınız:

user@PC:~$ cat .ssh/id_rsa.pub | ssh localhost 'cat >> .ssh/authorized_keys'

Ortak anahtarı .ssh/id_rsa.pubssh ile aynı ana bilgisayara kopyalıyorsunuz (localhost budur, aynı ana makinedir). localhostBaşka bir ev sahibi ile değiştirirseniz , bu daha mantıklı olacaktır (ancak bunu nasıl yapacağınızı öğrenmek için deniyorsanız, sorun değil).

Bir uzak ana bilgisayarda genel anahtarın kopyasını (veya konum aynı bir) sahip olduktan sonra, çağırarak, emin gerçek konakta, kimlik doğrulaması için kullanmak emin olmak gerekir ssh-agent/ ssh-add:

$ eval `ssh-agent`
$ ssh-add

Ardından, bir parola sağladıysanız, daha sonra girmeniz istenir ssh-add. Parola olmadan özel bir anahtar oluşturduysanız, o kadar.


Evet, komutları anlıyorum, sadece tuşlarla olağan şeyleri yaptığımı netleştirmek için bu şekilde koydum. Ben ssh-add yaptı ... (ben yaratılış hiçbiri kullanılmış gibi) parola sormaz .. ama yine, $ ssh localhost ls yapıyor, şifre istiyor
Canesin

Eğer yürüttüyseniz ssh-add, lütfen sorunuzu düzenleyin ve yaptığınız her şeyi yazın. Ne kadar çok bilgi verirseniz, cevap o kadar iyi ve hızlı olur.
Torian

Bunun için özür dilerim, şimdi düzeltildi .. Terminali ekledim, buraya yapıştırmak için tekrar yaptım ..
Canesin

Milyonlarca kez teşekkürler! BTW, neden " eval"?
IProblemFactory

3

Sorunu keşfettim.

Sunucuyu hata ayıklama ile çalıştırma:

$sshd -Dd

Ben auth_key okuyamadı buldum

$chmod 750 $HOME

Onu düzeltti.


Önceki dosya bayrakları nelerdi?
bbaja42

2

Aşağıdaki adımları uygulayın

ssh-keygen -t rsa -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.

Varsayılan dosyayı ve boş parolayı kullanın (Sonraki 2 adımda enter tuşuna basmanız yeterlidir)

# start the ssh-agent in the background
eval "$(ssh-agent -s)"
# Agent pid 59566
ssh-add 

~ / .Ssh / id_rsa.pub içeriğini ~ / .ssh / yetkili_anahtarlara kopyalayın

Aşağıdaki izinlerin alındığından emin olun

 ls -l .ssh/
 total 20
-rw-r--r--. 1 swati swati  399 May  5 14:53 authorized_keys
-rw-r--r--. 1 swati swati  761 Jan 12 15:59 config
-rw-------. 1 swati swati 1671 Jan 12 15:44 id_rsa
-rw-r--r--. 1 swati swati  399 Jan 12 15:44 id_rsa.pub
-rw-r--r--. 1 swati swati  410 Jan 12 15:46 known_hosts 

Ayrıca, .ssh dizini için izinlerin olduğundan emin olun. Bu da önemlidir

drwx------.   2 swati swati    4096 May  5 14:56 .ssh

1
$ HOME
swatisinghi için

Makinemde (Fedora 28) authorized_keys0600 olarak izin ayarlanması sorunu çözerken, .sshdizinin izninin sshing localhost üzerinde hiçbir etkisi yoktur
Chang Qian

1

Sunucu yapılandırmasını basitleştirin

Parola tabanlı kimlik doğrulamayı devre dışı bırakmanız gerekebileceğini düşünüyorum. Bu kullandığım bir sshd_config

Port 22
Protocol 2
PermitRootLogin no
StrictModes yes
PasswordAuthentication no
ChallengeResponseAuthentication no
MaxStartups 2
AllowUsers peter paul mary
LogLevel VERBOSE

Önce minimal bir şey deneyin, ardından ekstra özelliklere ihtiyacınız olduğu için ekleyin.


Güncelleme:

Sunucu günlüklerini kontrol edin

EDIT3'ünüzden, istemci parola tabanlı kimlik doğrulama girişiminde bulunmadan önce ortak anahtar kimlik doğrulamasının başarısız olduğunu görüyorum. Sunucunuzun sistem günlüğü sshd'den buna ışık tutan bazı mesajlar içerebilir.

Değiştirilmiş yapılandırmaları yeniden yükle

sshdYapılandırma değişikliklerini yeniden yüklemek için sinyal vermeyi unutmayın . Örneğinkill -HUP $(cat /etc/sshd.pid)


Parola olmadan bile
giremediğinde

@Amalgovinus: İlk cevabımı gönderdiğimden beri soru kapsamlı bir şekilde düzenlendi. Sanırım bu cevabı silebilirim.
RedGrittyBrick

0

Yukarıdaki yazı ile ilgili olarak, aynı sorunla karşı karşıya kaldığımda, hattı değiştirdim

Parola Doğrulama no

/ etc / ssh / sshd_config dosyasında çalıştı ve çalıştı.

Dahası, belki de kullanmak daha iyidir

hizmet sshd yeniden başlatma

yapılandırma değişikliklerini yeniden yüklemek için.


0

Red Hat Enterprise Linux 6.5 SELINux özelliği için sshd'nin $ HOME / .ssh okumasını engelleyen bir başka çözüm de restorecon kullanmaktır, buradaki yanıtlayıcım /superuser//a/764020/213743 .



0

Aynı sorun vardı, daha az giriş şifresi oluşturmak için 3 adım izledim ve iyi çalışıyor

1. ssh-keygen -t rsa
Press enter for each line
2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. chmod og-wx ~/.ssh/authorized_keys
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.