SSH özel anahtarları ile giriş yaptığınızda şifresiz sudo


23

SSH özel anahtarlarını desteklemek için sudo komutu yapmak mümkün mü, böylece kullanıcı özel bir anahtar kullanarak oturum açtığında bir parola yazmadan sudo yapabilir.

Bu, kullanıcıların sunucuda oturum açmak için her zaman güvenli özel SSH anahtarları kullandıkları varsayılarak, UNIX sysadmin parolalarının şifrelenmiş bir soğuk depoda depolanmasına ve hiçbir zaman bunlara erişmesi gerekmez.


askubuntu.com/a/135838 Bu kullanıcıları bir gruba koyarsanız, emin olabilirsiniz!
Rob

çalışıp çalışmadığını görmek sudo visudoiçin şifrenizi değiştirmeyi deneyinNOPASSWD: ALL
pnömatik

3
@AlanTuring Bu, o gruptaki bir parola ile tanımlanan kullanıcılar için de işe yarar.
Xyon

@AlanTuring Bu etkili bir şekilde sunucunun güvenliğini azaltacaktır - Ben sadece bazı kullanıcılar, hepsi değil, sudo istiyorum
Mikko Ohtamaa

Belirli kullanıcılara ayrıcalık vermek mümkündür. Cevabımı gör.
Isaac Rabinovitch

Yanıtlar:


10

Bunu yapma seçeneği (en azından) Nisan 2014'ten beri var olmuştur .

pam_ssh_agent_auth(Centos 7 için kutudan çıkar çıkmaz, YMMV için kullanılabilir) adlı bir paket kurmanız ve ardından /etc/pam.d/sudobir yetkilendirme yöntemi olarak kabul edecek şekilde yapılandırmanız gerekir . Son olarak, SSH_AUTH_SOCKsırasında devam eden ortam değişkenleri listesine eklemeniz gerekebilir.sudo .

Gentoo wiki'sinin bu adımlar için ayrıntıları vardır.


1
Güzel, teşekkürler Liam. Çok kötü ben yıllardır sysadmin içinde olmadım!
Mikko Ohtamaa

1

Sudo ve sshd üzerinde bazı ciddi kod değişiklikleri olmadan bu mümkün değildir. Sudo, oturum açma yöntemlerini bilmiyor ve ssh, diğer anahtarlarda oturum açma için ortak anahtar, parola veya başka bir mekanizmanın kullanılıp kullanılmadığını gösteren hiçbir şey yayınlamıyor.

Başka birinin söylediği gibi, NOPASSWD seçeneğini sudoers'da kullanabilirsiniz - bu, yalnızca ssh'ı özel anahtarlarla kullandıklarında değil, her zaman belirtilen kullanıcılar için geçerlidir.

Gerçekten isterseniz, sshd günlüğünü kontrol eden ve sudoers dosyasını kilitleyen / düzenleyen kullanıcının şifresiz bir sudo yapmasına izin veren ve bu izni iptal etmek için periyodik bir görevle yapabileceğiniz hileler olabilir.

Bütün bunlar, bence bu kötü bir fikir. Ayrıcalıklı komutlar için bir parola istemek, SSH özel anahtarının kullanamadığı birkaç güzel fayda sağlar. Özellikle, kimlik doğrulaması için zaman aşımına sahip olmanızı sağlar (ssh oturumları için parola yeniden girilmelidir, ssh oturumları için doğru değildir), parola minimumları ve dönüşü (sunucunun denetimi dışında bir parolaya sahip ssh anahtarlarının aksine) sağlar.


11
"Bu yapılamaz" o özellikle bir cevap değil olabilir yapılabilir.
Isaac Rabinovitch

Cevabı yeni informatino içeren doğru cevapla değiştirmek.
Mikko Ohtamaa

1

Birkaç cevap Ayrı bir kullanıcı şifresi olmadan sudo'ya işaret edin. Bunun güvenliğinizi azaltacağından haberdar olmalısınız.

Zaten bir sertifika ile güçlü bir şekilde kimlik doğrulaması yapan bir kullanıcı için, teorik olarak kendisini köklendirebilecek bir sertifika sahibi olduğu için bu bir sorun olmayabilir.

Ancak, bir saldırgana sınırlı bir kullanıcı kabuğuna sahip olacak güvenlik açıklarını düşünürseniz ve bu kullanıcının sudoers dosyasında NOPASSWD ayarlanmışsa, saldırgan Sistem için herhangi bir kimlik bilgisi olmadan köktür.

Sudo kullanıcıdan bir parola gerektiriyorsa, saldırganın root yapma ayrıcalıklarını artırmak için zamana ve şansa ihtiyacı vardır.

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.