ssh asla şifre sorma


14

Bir şekilde SSH'm hiçbir zaman benden şifre istemiyor.

Bu yüzden dünyanın herhangi bir yerinde rastgele bir sunucuya bir VPS kurdum ve ssh ile bağlanmak istiyorum.

Bir anahtar ayarlayabilirim, ancak bunu yaptığımda:

ssh -l some-user IP

Hatayı alıyorum:

Received disconnect from ##.##.##.##: 2: Too many authentication failures for some-user

Detaylara baktığımda, şifrenin seçeneklerden biri olduğunu görebiliyorum:

debug1: Offering RSA public key: some-user@computer
debug1: Authentications that can continue: publickey,password

Yine de SSH benden asla şifre sormuyor. Ne publickey yöntemi olduğundan şüpheleniyorum ile 5 kez çalışır ve sonra başarısız. Ssh neden parolayı denemiyor ?!

Her ihtimale karşı, ssh_config dosyamda şunlar var:

PasswordAuthentication yes

Tam günlük

ssh -v -l root ##.##.##.##
OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /home/someuser/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ##.##.##.## [##.##.##.##] port 22.
debug1: Connection established.
debug1: identity file /home/someuser/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/someuser/.ssh/id_rsa-cert type -1
debug1: identity file /home/someuser/.ssh/id_dsa type -1
debug1: identity file /home/someuser/.ssh/id_dsa-cert type -1
debug1: identity file /home/someuser/.ssh/id_ecdsa type -1
debug1: identity file /home/someuser/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2p2 Ubuntu-6
debug1: match: OpenSSH_6.2p2 Ubuntu-6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.1p1 Debian-4
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: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA XX:XX:...:XX:XX
debug1: Host '##.##.##.##' is known and matches the ECDSA host key.
debug1: Found key in /home/someuser/.ssh/known_hosts:38
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/someuser/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: someuser@computer
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: someuser@computer
debug1: Authentications that can continue: publickey,password
debug1: Offering DSA public key: someuser@computer
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: someuser@computer
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: someuser@computer
Received disconnect from ##.##.##.##: 2: Too many authentication failures for root

Yanıtlar:


17

Kullanarak Genel Anahtar Kimlik Doğrulaması devre dışı bırakılmış olarak giriş yapmayı deneyin

ssh -o PubkeyAuthentication=no root@newserver

Tamam! İşe yaradı! Başarısız "zıt" denedim ... (yani -o PasswordAuthentication=yes). Ama aradığım şey buydu.
Alexis Wilke

3
@AlexisWilke Çalıştığına sevindim! Ama lütfen Olli'nin cevabını da okuyun. Kesinlikle haklı, hala seninle ilgili yanlış bir şey var .ssh/config. -o PubkeyAuthentication=noKalıcı çözüm olarak hoş değil.
Klaus-Dieter Warzecha

Bu hile (-o PubkeyAuthentication = no), birkaç kimlik dosyasına sahip bir makinede iyi çalıştı.
Valerio Schiavoni

17

Büyük olasılıkla dosyanızda birden fazla identityfilesatır var .ssh/config.

Eğer varsa bile identityfilealtında hostyapılandırma, bu küresel uygulanır. Bunun anlamı, sshsunucudan parola istemi sormadan önce her ana bilgisayardaki her kimlik dosyasını (yani ortak anahtarı) denemesidir.

Bunu şu şekilde düzeltebilirsiniz:

  1. Bir identityfilesatır dışındaki tüm satırları kaldırma veya
  2. Ekleme PubkeyAuthentication noiçin .ssh/configveya
  3. Ssh -o PubkeyAuthentication=noparametresiyle yürütülür .

Gönderen man 5 ssh_config:

PubkeyAuthentication
    Specifies whether to try public key authentication.  The argument to this
    keyword must be “yes” or “no”.  The default is “yes”.  This option applies 
    to protocol version 2 only.

IdentityFile
    ...
    It is possible to have multiple identity files specified in configuration
    files; all these identities will be tried in sequence.  Multiple 
    IdentityFile directives will add to the list of identities tried (this 
    behaviour differs from that of other configuration directives).

Genel anahtarlarla ilgili bazı genel talimatlar:

  1. Genel olarak, istemci (iş istasyonu) başına yalnızca tek bir özel anahtarınız olmalı ve istemcinin erişmesi gereken tüm sunuculara eşleşen ortak anahtarı koymalısınız. Başka bir deyişle, ortak anahtarı sunucular arasında paylaşın ve asla aynı özel anahtarı birden fazla cihazda kullanmayın.
  2. Her zaman cihazınızda anahtar çifti oluşturun ve yalnızca genel anahtarı aktarın. Bu şekilde, sunucunun güvenliği ihlal edilmiş olsa bile, özel anahtarınız hala güvende ve güvende olur. Bu, şaşırtıcı bir şekilde olabilir - örneğin yedeklemeler yoluyla.
  3. Başkası sunucusu yönetiyor ise sen onlar için bir ortak anahtar sağlamalıdır; onlar olmalıdır değil anahtar çifti oluşturmak ve size özel anahtarı gönderin. Bu şekilde, sizi anahtarınızla taklit edemezler (elbette, genellikle istediklerini yapabilirler). Ayrıca, açık anahtarla, yalnızca bütünlük (örneğin, açık anahtarı değiştirmeyen) korunmalıdır; özel anahtarla, gizlilik (yani anahtarı alan başka hiç kimse) korunmamalıdır ve güvenliğinin ihlal edilmediğinden kesinlikle emin olmak mümkün değildir.
  4. Birden fazla sunucuya bağlanmak için aynı özel anahtarı kullansanız bile, bir sunucunun ele geçirilmesi diğer sunuculardan ödün vermez (bu özel anahtarı sunucuya aktarmış olmanız durumu hariç. Bunu asla yapmayın.)
  5. İş istasyonunuzdan ödün vermek özel anahtarlarınızı yine de gösterecektir. Birden fazla özel anahtara sahip olmak buna yardımcı olmaz (farklı, güçlü parolalarınız varsa ve bunların hepsi saldırgan için uygun değildir).

Bunun bazı istisnaları var, ama çok fazla değil.


2
Aaah! Ben "çok fazla" dosyaları tanımlamak var ve bunların 5 ve durur ile kontrol eder. Anladım! Bu her şeyi açıklıyor. Sanırım tüm bunları bir alt klasörde taşımalıyım, böylece otomatik olarak bulunamazlar ve şifre özelliği tekrar otomatik olarak çalışır ...
Alexis Wilke

3
Mümkünse, ihtiyacınız olan her hizmet için yalnızca tek bir ortak anahtar kullanmalısınız / kullanabilirsiniz. Çok nadiren başka bir şekilde yapmanın bir nedeni vardır. Birisi ortak anahtarınızı çalarsa (içeriği authorized_keys), onunla hiçbir şey yapamaz. Ve tüm özel anahtarlarınız ( id_rsa/ id_dsa) yine de aynı bilgisayardaysa, birden fazla kullanmak önemli değildir.
Olli

4

Yerel ssh'niz sizden şifre istememeli, diğer uçtaki ssh sunucusu olmalıdır. Sunucunun parola kimlik doğrulamasını kabul etmeyecek şekilde ayarlanmış olması muhtemeldir. Benim de bir şifre istemez.


1
Diğer sunucu yepyeni bir sunucudur ve tam olarak bunu yapmanızı söyler. Sadece bu da değil, eşim problemsiz giriş yapabilir! Bilgisayarımda parolayı sınamasını engelleyen bir şeyler var ... Aslında, günlüklere bakarsanız, yetkili kimlik doğrulaması "parola" içerir. Bu nedenle, yerel ssh istemcim benden parola sormalı, ancak atlamaya karar verir.
Alexis Wilke

Sunucunun neden bir parola istemediğini görmek, sunucu tarafından sunuluyorsa istemcinizin size neden bu seçeneği sunmadığını görmek daha kolaydır. Sonlarında çok sayıda yapılandırma seçeneği var ve kendinizde birkaç yapılandırma seçeneği var. IP adresiniz olan bir kişi doğru şifre olmadan çok fazla giriş yapmayı denemiş olabilir ve IP'nizden gelecekteki denemeler devre dışı bırakılmış olabilir. Vur, sadece Olli'nin cevabını okudum. Bu kadar.
Marc
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.