Parolasız kimlik doğrulama çalışmıyor


0

Web sunucum arasında & amp; şifresiz bir kimlik doğrulama kurmaya çalışıyorum. Aşağıdaki adımları kullanarak bir raporlama sunucusu. Dev ortamımda iyi çalışıyor, ancak müşteri ortamında çalışmıyor.


Adımlar:

Web sunucusundaki testUser kullanıcısı olarak:

mkdir ~/.ssh

cd ~/.ssh

ssh-keygen (use default file location and empty passphrase)

ssh-keygen -t dsa (as before)

Oluşturulan ortak anahtarları Raporlama sunucusuna aktarın.

TestUser kullanıcısı olarak -

sftp testUser@<ReportServerName>

put id_dsa.pub

put id_rsa.pub

quit

Raporlama sunucusunda aşağıdaki adımları izleyin.

TestUser kullanıcısı olarak

mkdir ~/.ssh

cd ~/.ssh

cat ~/id_rsa.pub >> authorized_keys

cat ~/id_dsa.pub >> authorized_keys2

rm ~/id_*.pub

chmod 644 auth*

Kök kullanıcı olarak     vi / etc / ssh / sshd_config

Uncomment ‘PubkeyAuthentication evet’

/etc/init.d/sshd restart

Bir sftp testUser @ denediğimde bu adımları uyguladıktan sonra hala bir şifre sormamı istiyor.

Birisi yardım edebilir mi?


Neden bir anahtar koymak authorized_keys ve diğer authorized_keys2? (İkinci isim, yıllar önce terk edilmiştir.) Neden ilk önce iki anahtarınız var? (Sadece bir tür yeterli, genellikle rsa veya ed25519.)
grawity

olmalı ~/.ssh/authorized_keys. Ayrıca hangi openssh sürümünü kullanıyorsunuz?
Jakuje

Yanıtlar:


2

Burada birden fazla olası tuzaklar var. Dizinleri kendiniz oluşturduğunuz için izinler yanlış olabilir.

Aşağıdaki izinler gereklidir :

  • ~/.ssh Dizin sahibi dışında kimse tarafından okunamaz. chmod 700. O Yapmamalısın olmak yazılabilir sahibi dışındaki herkes tarafından.
  • Özel anahtar dosyaları Yapmamalısın olmak okunabilir veya yazılabilir sahibi dışındaki herkes tarafından, genellikle chmod 600. ssh-keygen Bunu senin için zaten yaptım.
  • ~/.ssh/authorized_keys dosya Yapmamalısın olmak yazılabilir sahibi dışındaki herkes tarafından, en azından chmod 644. (Genel anahtarlar gizli değildir - tanım başına!)

Şüpheniz varsa: Koşun sshd hata ayıklama modunda. Terminale bağlı kalacaktır:

sudo /usr/bin/sshd -p 2222 -d

Ardından, istemcinizden 2222 numaralı bağlantı noktasına bağlanın:

ssh -p 2222 my-ssh-server

Sunucu karşılaştığı her hatayı kaydeder. Bu gibi bir şey olabilir:

Kimlik doğrulama reddedildi: /home/fuzzy/.ssh dizini için sahiplik veya modlar hatalı


Hata ayıklama modunda çalıştırma konusunda gerçekten yararlı. Bundan hemen sonra sadece .ssh'yi değil, .ssh'yi içeren dizinin de chmod 700 olması gerektiğini fark ettim. Çok teşekkürler!
GregT

0

Birkaç hata ayıklama adımı vardır:

  • Her iki taraftaki günlükleri kontrol edin. muhtemelen /var/log/auth.log.
  • Ssh bağlantınızı ayrıntılı modda çalıştırın ssh -v.
  • Her dizinin erişimini kontrol et ~/.ssh '/' ye. Bu dizinlerin hiçbiri veya başka bir yazılamaz.

Bu iki hat ile erişimi test edebilirsiniz. (Kök izinlerinin tamam olduğunu varsayar).

cd ~/.ssh; DIR=$PWD
while [ $DIR != '/' ]; do ls -ld $DIR; DIR=$(dirname $DIR); done
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.