SSH ve giriş dizini izinleri


53

Bu SSH sorununu okulumun sunucularındaki sınıf hesaplarımdan biriyle çözmek saatlerimi aldı.

Parolamı girmeden belirli bir sınıf hesabına ssh yapamazdım, diğer sınıf hesaplarımla parolasız kimlik doğrulama çalışıyordu. .Ssh / dizin ve tüm içeriği, diğer sınıf hesaplarıyla aynı, doğru izinlere sahipti.

Sorunu kendi ana dizinde ayarlamış izinlerdi. HOME dizinimdeki izinler 770 olarak ayarlandığında (.ssh / için ayarlanan izinler ne olursa olsun) parolasız kimlik doğrulama çalışmadı, ancak 755 veya 700 olarak ayarlanmış izinlerle çalıştı.

Bunu neden SSH yaptığını bilen var mı? Giriş dizini izinleri çok izin verilebilir mi? SSH, ev dizini 700'den daha izin verildiğinde neden açık / özel anahtarlarla kimlik doğrulamayı reddediyor?


1
Aşağıdaki cevapları doğruladı; buradaki sorun, ana klasördeki grup izinlerinin yanlış ayarlanmasıydı (auth.log dosyasındaki hata mesajı: 'Kimlik doğrulama reddedildi: kötü sahiplik veya dizin / ev / <kullanıcı> için kipler). SSH'nin ev direktörlüğü izinleri konusunda seçici davranmakta haklı olduğunu düşünüyorum.
action_potato

5
Buradaki wikis etiketini biliyor muydun? Eğer tıklarsanız ssh ardından learn more, SSH çalışmıyorsa ne yapacağını için bir kontrol listesi göreceksiniz ve ev dizini izinleri bahseder.
Gilles 'SO- kötülük yapmayı bırak'

Ah, üzgünüm bunu bilmiyordum! Söylediğin için teşekkürler.
action_potato

Yanıtlar:


54

SSH için varsayılan davranış budur. Bu uygulayarak kullanıcı anahtarlarını korur rwx------üzerinde $HOME/.sshve yalnızca sahibi yazma izinlerine sahip sağlanması $HOME. İlgili sahibin dışındaki bir kullanıcı $HOMEdizinde yazma iznine sahipse $HOME/.ssh, potansiyel olarak kullanıcı anahtarlarını ele geçirme üzerindeki izinleri kötü niyetli olarak değiştirebilir known_hostsveya benzer bir şey yapabilir. Özet olarak, aşağıdaki izinler $HOMESSH'nın çalışması için yeterli olacaktır.

  • rwx------
  • rwxr-x---
  • rwxr-xr-x

SSH doğru çalışmayacak ve herhangi bir varyasyonu ise günlük tesislerine uyarıları gönderecek g+wveya o+wüzerinde var $HOMEdizine. Ancak, yönetici tanımlayarak bu davranışı geçersiz kılabilirsiniz StrictModes noiçinde sshd_configolduğunu açık olmalıdır olsa (veya benzeri) yapılandırma dosyasında önerilmez .


1
Bahsettiğin için teşekkürler StrictModes no. Kurulumumda, bir yarı-kapalı kullanıcı ( u:operator:rwx) tarafından değiştirilmesine izin vermek için hedef kullanıcının ana dizininde ve tüm torunlarında bir ACL yapılandırılmıştır ve SSH bundan hoşlanmadı.
intelfx

31

Ana dizininizdeki 77x değeri, GID’i doğru olan herkesin .ssh dizininizi hareket ettirip başka biriyle değiştirebileceği anlamına gelir. Doğru GID'ye sahip kullanıcılar, ana dizinde yazma / çalıştırma izinlerine sahiptir ve bu nedenle dosyaları / dizinleri yeniden adlandırabilir / oluşturabilirler.

SSH izinlere gelince çok seçici ve yapmalı.

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.