şifresiz ssh çalışmıyor


35

Ben w / kurulum için bir şifre daha az ssh b denedim Aetmek Bve Bkarşı Ada. ssh-keygen -trsaHer iki makinede de genel ve özel anahtar üretildi. Kullanılan ssh-copy-idkamu-anahtarları kopyalamak için programı Aiçin Bhem de Bhiç A.

Şifresiz ssh çalışır Aiçin Bancak notgelen Biçin A. ~ / Ssh / klasörünün izinlerini kontrol ettim ve normal görünüyor.

A's .ssh klasör izinleri:

-rw-------  1 root root 13530 2011-07-26 23:00 known_hosts
-rw-------  1 root root   403 2011-07-27 00:35 id_rsa.pub
-rw-------  1 root root  1675 2011-07-27 00:35 id_rsa
-rw-------  1 root root   799 2011-07-27 00:37 authorized_keys
drwxrwx--- 70 root root  4096 2011-07-27 00:37 ..
drwx------  2 root root  4096 2011-07-27 00:38 .

B's .ssh klasör izinleri:

-rw------- 1 root root  884 2011-07-07 13:15 known_hosts
-rw-r--r-- 1 root root  396 2011-07-27 00:15 id_rsa.pub
-rw------- 1 root root 1675 2011-07-27 00:15 id_rsa
-rw------- 1 root root 2545 2011-07-27 00:36 authorized_keys
drwxr-xr-x 8 root root 4096 2011-07-06 19:44 ..
drwx------ 2 root root 4096 2011-07-27 00:15 .

Aubuntu 10.04 (OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009) Bbir debian makinesidir (OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19 Eki 2007)

Kimden A:

#ssh B

iyi çalışıyor.

Kimden B:

#ssh -vvv A 
...
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/identity ((nil))
debug2: key: /root/.ssh/id_rsa (0x7f1581f23a50)
debug2: key: /root/.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,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: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
root@192.168.122.1's password: 

Temel olarak dosyayı kullanarak kimlik doğrulaması yapılmadığı anlamına gelir /root/id_rsa. Koştum ssh-addyanı her iki makinelerde komutu.

/etc/ssh/sshd_configDosyanın kimlik doğrulama kısmı:

# 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

Fikirlerim tükeniyor. Herhangi bir yardım takdir edilecektir.


Ayarı nedir PermitRootLoginiçinde /etc/ssh/sshd_configA?
taneli

@taneli:, yesaksi takdirde kullanıcıdan bir şifre sorulmaz.
Lekensteyn

Benim durumumda ubuntu
12.04'deki

Yanıtlar:


24

Aşağıdaki prosedürü uyguladığınızdan emin olun:

Makine A'da

bir terminal açın ve komutları aşağıdaki gibi girin:

root@aneesh-pc:~# id

Sadece kök olduğumuzdan emin olmak için.

Yukarıdaki komut aşağıdakine benzer bir şeyse, biz suroot'uz.

uid=0(root) gid=0(root) groups=0(root)

1) Anahtarları oluşturun.

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
49:7d:30:7d:67:db:58:51:42:75:78:9c:06:e1:0c:8d root@aneesh-pc
The key's randomart image is:
+--[ RSA 2048]----+
|          ooo+==B|
|         . E=.o+B|
|        . . .+.*o|
|       . . .  ...|
|        S        |
|                 |
|                 |
|                 |
|                 |
+-----------------+

Ben hiç şifre kullanmadım. İhtiyacınız olursa kullanabilirsiniz.

2) Açık anahtarı makinenin B .ssh/authorized_keysdosyasına kopyalayın

root@aneesh-pc:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@mylap
root@mylap's password: 

Şimdi, makineye giriş yapmayı deneyin ssh 'root@mylap've şunu kontrol edin:

~/.ssh/authorized_keys

Beklemediğiniz ekstra anahtarlar eklemediğimizden emin olmak için.

Mylap'ı, giriş yapmak istediğiniz makinenin ana bilgisayar adı veya ipi ile değiştirin (örn. Makine B)

3) Şifre olmadan B'ye giriş yapın

root@aneesh-pc:~# ssh root@mylap
Warning: Permanently added 'mylap,192.168.1.200' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Wed Jul 27 15:23:58 2011 from streaming-desktop.local
aneesh@mylap:~$

B Makinesinde

4) Makine A'ya giriş yapmak için anahtarları oluşturun

root@mylap:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
35:9f:e7:81:ed:02:f9:fd:ad:ef:08:c6:4e:19:76:b1 root@streaming-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|          o   .  |
|         . + + o |
|        S o * E  |
|           = O . |
|            O +  |
|           + o o.|
|            . o+=|
+-----------------+

5) Açık anahtarı makinenin A .ssh/authorized_keysdosyasına kopyalayın

root@mylap:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@aneesh-pc
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
root@aneesh-pc's password: 

Şimdi, makineye giriş yapmayı deneyin ssh 'root@aneesh-pc've şunu kontrol edin:

.ssh/authorized_keys

Beklemediğiniz ekstra anahtarlar eklemediğimizden emin olmak için.

6) Şifre olmadan A'ya giriş yapın

ssh root@aneesh-pc
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/


Last login: Tue Jul 26 18:52:55 2011 from 192.168.1.116

Bu adımları tamamlayabiliyorsanız, tamamlanmıştır. Şimdi, ssh-key (public-key) etkin girişli iki makineniz var.


6 adımda belirtildiği şekilde adım 5’e kadar olan her şeyi doğruladı, ancak bir şekilde adım 6 çalışmıyor
Cuurious

Bu komutun çıktısını sağlayabilir misiniz: 'ssh -v root @ aneesh-pc'. kullanıcı adı ve ana bilgisayar adını kendinizle değiştirin.
aneeshep

15
Suçlu, /root(770) izinlerinin drwxrwx--- 70 root root 4096 2011-07-27 00:37 .. çok açık olduğunu tespit etti. İçin izinleri değiştirildi drwxr-xr-xve şimdi çalışıyor. Ebeveyn müdürünün izninin bunu etkilediği gerçeğini hayal edemiyorum ssh.
Ağustos'ta

1
@Cuurious İyi yakalamak, ev dizini de 770ayarlamıştı, a ile değişti 750ve her şey yolunda gitti :) Her zaman linux primlerinin bu şekilde tersine dönebileceğini unutmuş gibiyim.
tamamlayıcı

1
3. adımda başarısızlık. Ssh-copy-id bir parola girdikten sonra çalışıyor, ancak hala bir şifre sorulmadan giriş yapamıyorum, yetkili_keys dosyam .pub'imin metnini içeriyor ve oturum açma için anahtar veriyorum . Boşuna. Tüm dizinlerdeki izinler doğru.
Matt Clark

44

Parola olmadan ssh ayarladıktan sonra , yine de kullanıcı şifrem istendi. /var/log/auth.logUzaktaki makineye bakarak şu konuya dikkat çekti:

sshd[4215]: Authentication refused: bad ownership or modes for directory /home/<user>

Yani, doğru olduğundan emin olun:

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

Diğer kullanıcıların .sshklasörün üzerine yazmalarını yasaklamak açık olsa da, ana klasörünüz için de aynı şartı kullanmak zordu.

Ayrıca, onay /etc/ssh/ssd_configsağlamak için RSAAuthenticationve PubkeyAuthenticationseçenekleri devre dışı değildir. Varsayılan, yesbu nedenle sorun olmamalıdır.


Ayrıca yukarıda listelenen bu klasörlerin doğru kullanıcıya sahip olduğundan emin olun
GoalBased 13.03.2013

Kötü bir şekilde yaratılmış bir realtek sürücü arşivini kaldırarak bu duruma girdim. Dizini açıp açmakta olduğum dizinin sahibini değiştirdi.
Paul McMillan

2
Ana klasörünüz yazılamaz olamaz çünkü öyleyse, o zaman sizi ~/.sshbaşka bir şeyle yeniden adlandırabilirim ve sonra içinde kendi anahtarımla yeni bir tane oluşturabilirim.
Kevin Panko

2
müthiş! ana makinedeki kayıtlara bakmayı düşünmemiştim. Teşekkürler!
user3099609

14

Muhtemelen sadece daha yüksek seviye izin problemi. Yazma izinlerini grup ve diğer gruplardan ana dizine ve .ssh dizine kaldırmanız gerekir . Bu izinleri düzeltmek için, chmod 755 ~ ~/.sshveya komutunu çalıştırın chmod go-w ~ ~/.ssh.

Hala sorun yaşıyorsanız, günlüğünüzde aşağıdaki grep'i verin:

sudo egrep -i 'ssh.*LOCAL_USER_NAME' /var/log/secure

( LOCAL_USER_NAMEyerel kullanıcı adınızla değiştirin ...)

Sshd kimlik doğrulama bilgilerinin varsayılan olarak olması gereken güvenli günlüğe kaydedildiğini varsayarsak, bu size sorununuz hakkında daha fazla bilgi vermelidir. Bu gibi görünen hatalar görürseniz:

TARİH HOSTNAME sshd [1317]: Kimlik doğrulaması reddedildi: dizin / yol / dizin / bazı / dizinler için hatalı sahiplik veya modlar

Yukarıda açıklanan problemdir ve söz konusu dizini bulmanız ve yazma izinlerini gruptan ve diğerlerinden kaldırmanız gerekir.

Yazma izinlerini ana dizininizle sınırlamanız gerekeceğinden (.ssh ve sonraki dizinlerde izinler zaten kısıtlanmış olsa da), diğer kullanıcıların .ssh dizininizi yeniden adlandırmasına ve yeni bir tane yapmasına izin verir. olduğu gibi kullanılamaz duruma gelir (yanlış izinler nedeniyle) çoğu kullanıcının düzeltmesi muhtemelen dizin içeriğini kontrol etmek yerine izinleri değiştirmek olur ...

TLDNR : Ev dizininizdeki gruba ve / veya diğerlerine yazma erişimine izin vermek ssh zorla şifre girişi yapacaktır.


2

Her makinede root hesabını kullanıyor musun? Genellikle Ubuntu'da bir kullanıcı hesabı kullanır ve gerektiği gibi sudo ayrıcalıkları verirsiniz.

Kök olmayan bir kullanıcı sudo chown $USER -R ~/.sshkullanmanız sorununuzu çözebilirse

Kontrol edilecek diğer şeyler:

B’nin id_rsa.pubA’da olduğunu kontrol edin authorized_keys.

A'nın /etc/ssh/sshd_configiçerdiği kontrol

PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes

Ya, Ubuntu makinesinde root hesabını etkinleştirdim, bu yüzden her iki sistemde de root kullanıcısı olarak çalışıyor
Cuurious

Evet, düşündüm de, gözden kaçmış olabileceğin birkaç öneri daha ekledim. Bu çıktı gerçekte işe yaramaz, öyle değil mi?
Smithamax

1
rsa anahtarının kabul edilmemesinin nedeni burada sanırım buradaki temel unsur :). sshd_config yukarıda belirtilen unsurları içeriyor, ben /etc/ssh/sshd_configdosya içeriğinin içeriğini dahil etmek için soruyu düzenledim
Cuurious

-3

Hedef değişikliğinde / etc / ssh / sshd_config içinde

PermitRootLogin no

için

PermitRootLogin evet

sonra öldür - sshd PID -HUP:

root @ dzone2 # ps -ef | grep ssh root 28075 27576 0 Kas 17? 6:11 / usr / lib / ssh / sshd

root 17708 20618   0 10:09:30 pts/37      0:00 grep ssh root@dzone2 # kill -HUP 28075 root@dzone2 # ps -ef|grep ssh
root 17861 20618   0 10:09:44 pts/37      0:00 grep ssh
root 17852 27576   0 10:09:42 ?           0:00 /usr/lib/ssh/sshd

1
Bu yardımcı olmaz. Sorun, şifresiz SSH giriş bilgilerinin (RSA anahtar çifti ile doğrulanması) çalışmamasıdır. Sağladığınız talimatlar rootSSH giriş bilgilerinin çalışması için. Bu, bu sorunun ne hakkında olduğu ile tamamen ilgisiz. Ayrıca, roothesap etkinse (varsayılan olarak Ubuntu'da değildir), rootSSH girişlerini etkinleştirmek oldukça tehlikeli olabilir.
Eliah Kagan
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.