SSH İzni reddedildi (genel anahtar), ancak root ssh çalışıyor


15

Dijital okyanus ubuntu 12.04 sunucusunda şef ile oluşturduğum bir kullanıcı hesabı için ssh erişimi kurmaya çalışıyorum. Damlacık oluşturulduğunda mac'umun ssh anahtarını otomatik olarak kopyalamak için dijital okyanusta ayarlanmış seçeneklerim vardı.

Hiçbir sorun olmadan kök olarak ssh olabilir, ancak diğer kullanıcı kimlik doğrulaması başarısız. Bu yaygın bir sorun gibi görünüyor ve diğer cevapların bazılarını kontrol ettim ve daha fazla bilgi almak için bu komutu buldum:

ssh -vvv -i id_rsa user@serverIP

Bu komutla kök kullanıcının (başarılı olan) günlükleri şunlardır:

ayıklama

1: Offering RSA public key: /Users/evan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp snip!
debug3: sign_and_send_pubkey: snip!
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).

başarısız kullanıcı:

ayıklama

1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/evan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/evan/.ssh/id_dsa
debug3: no such identity: /Users/evan/.ssh/id_dsa: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.

Bana göre açık anahtar yanlış. Ancak, root kullanıcısı olarak giriş yapıp gidersem home/otheraccount/.ssh/authorized_keysssh anahtarımın orada olduğunu görebilirim. Belki bir hata olduğunu düşündüm, bu yüzden yaptım cp .ssh/authorized_keys ~/home/otheraccout/.ssh/authorized_keysama bu yardımcı olmadı. Başka nereye bakacağımı bilmiyorum.

benim etc/ssh/sshd_conig:

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
"sshd_config" 88L, 2508C
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

# GS

SAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM no
Banner /etc/ssh_banner

Düzenle:

drwx------ 2 deploy deploy 4096 Apr 20 06:00 .ssh
-rw------- 1 deploy deploy 820 Apr 20 05:35 authorized_keys

Edit2:

Yorumlarda önerildiği gibi /var/log/authlog:

Apr 21 04:59:30 localhost sshd[586]: User deploy not allowed because account is locked
Apr 21 04:59:30 localhost sshd[586]: input_userauth_request: invalid user deploy [preauth]

Yapmaya çalıştım sudo usermod --expiredate -1 deployve geri döndüno changes


1
İzinleriniz doğru mu? ~/home/otheraccount/.ssholmalı 700ve ~/home/otheraccount/.ssh/authorized_keysolması gereken 600izin ve her iki dosya ait olmalıdırotheraccount
clement

Doğru olduklarını düşünüyorum, konuşlandırma diğer olduğunu: drwx------ 2 deploy deploy 4096 Apr 20 06:00 .ssh -rw------- 1 deploy deploy 820 Apr 20 05:35 authorized_keys
user2936314 20:14

kullanıcı olarak giriş yapmaya çalıştığınızda serverIP( /var/log/auth.log) giriş satırları deploynelerdir?
clement

ilginç, kullanıcı kilitli şikayet, yukarıdaki günlükleri ekledi.
user2936314

Yukarıdaki yorumu düzenlememe izin vermeyeceğim: Bunu düzeltdim passwd -u. deployŞimdilik ssh olabilir , ama şefimin konuşmasının neden kilitli kullanıcılar oluşturduğunu gerçekten merak ediyorum. Size kredi verebilir böylece yukarıdaki yorumunuzu bir cevap olarak kopyalayın / yapıştırın
user2936314

Yanıtlar:


16
  • SSH kullanıcı adlarını çeşitli nedenlerle (yanlış dizin / dosya izinleri, yanlış tuşları vs.) ve bağlantı sadece alacak müşteri için başarısız olabilir Permission deniedveya No more authentication methods to tryya da bazı genel hata.

  • Oturum açma hatasının kesin nedeni ssh günlüğünde /var/log/auth.logveya /var/log/securesyslog yapılandırmasına bağlı olarak kullanılabilir .


Bu, şimdiye kadar gördüğüm SSH oturum açma sorunuyla ilgili tüm soruların en iyi cevabı! Tüm diğer yanıtların önerdiği gibi yanlış izinleri ve dosya adlarını rastgele tahmin etmek yerine, sadece belirtilen günlükleri kontrol edin ve ihtiyacınız olan tüm bilgileri içerir!
Yaroslav Admin

Tam nedeni günlük dosyamda değil. Tek söylediği oturumun kapalı olmaktan çok açık olması.
VectorVortec

3

Aynı sorun benim için taze CentOS7 yüklemek.

1. ev dizini izinlerini ve ~ / .ssh ve ~ / .ssh / yetkili_anahtarlar izinlerini kontrol edin (@clement'in dediği gibi)

chmod o-w ~/; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys

2. / etc / ssh / sshd_config ayarlarını kontrol edin & servis sshd restart (her düzenlemeden sonra) Yararlı: sshd_config içinde "LogLevel VERBOSE" komutunu deneyin.

Hala tüm ok kontrol ettikten sonra şifre istemi var.

Ssh istemcisini -vvv günlükleriyle çalıştırın:

debug3: send_pubkey_test 
debug2: we sent a publickey packet, wait for reply

Sunucu (/ var / log / secure) günlükleri:

Failed publickey for * from * port * ssh2: RSA *

ssh sunucusu güvenlik riski oluşturacağından istemciye daha fazla hata bilgisi göndermez.

Eğer sshd'yi farklı bir portta çalıştırırsam 'sshd -p 5555 -d'. Anahtar işe yaradı. Şifresiz giriş tamam. O NE LAN?

SAD :-( daha sonra selinux'u devre dışı bıraktığımı söylemek için (SELINUX'u ayarlayın / / etc / selinux / config'te devre dışı bırakıldı) ve yeniden başlatın.

Benim Geçerli çalışma sshd_config ayarları:

[root@hp-bl-05 ~]# grep -vE "^#|^$" /etc/ssh/sshd_config  
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
SyslogFacility AUTHPRIV
LogLevel VERBOSE
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
HostbasedAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UseDNS no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem   sftp    /usr/libexec/openssh/sftp-server

Bu yüzden işe yaramaz ssh giriş almak için selinux küçük bir şey değiştirmek olabilir bilmek güzel olurdu. Birisi cevabı geliştirebilir mi?

burada aynı: /superuser/352368/ssh-still-asks-for-password-after-setting-up-key-based-authentication/1072999#1072999

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.