Bir komut ssh üzerinden nologin kullanıcısıyla çalıştırılabilir mi?


13

Bir kullanıcının sahip loginShell=/sbin/nologinolması hala mümkün

ssh user@machine [command]

kullanıcının giriş dizininde kimlik doğrulaması için kullanılabilecek uygun ssh anahtarları olduğunu varsayarsak?

Amacım kullanıcıyı nologin olarak tutmak, ancak yine de ağdaki diğer birkaç makinede ('sudo -u' aracılığıyla kullanımına benzer) komutları yürütebilmek ve bunun makul bir kurs olup olmadığını merak ediyorum.


1
İşe yaramalı. commandÇalıştırılır yerine giriş kabuğunun.
orion

1
Bu, /sbin/nologinkabuk olarak yapılandırma amacını ortadan kaldırır. Endişeniz hesabın güvenliği ise, şifre yetkisini devre dışı bırakmak ve ssh anahtarlarını kullanmak yeterlidir.
Creek

@Creek, giriş kabukları ile diğer kabuk örnekleri arasında bir fark vardır. Yani, sorduğu şey / sbin / nologin'in amacını bozmaz. Bir giriş kabuğu bağlamı dışında bir iş yapmak istiyor olabilir.
Michael Martinez

7
@orion Yanlış. Komut, giriş kabuğu tarafından yürütülür .
Gilles 'SO- kötü olmayı bırak'

@MichaelMartinez, kendi örneği bağlamında, kullanıcının kabuğu o /sbin/nologinzaman kullanıcı oturum açamaz veya makinede komutları yürütemez. cronjobs kullanıcı olarak çalıştırılabilir ve sftpoturum açmak üzere yapılandırılabilir, ancak ssh ile bir kabuk açılması gerçekleşmez
Creek

Yanıtlar:


17

Ayar /sbin/nologin(veya kullanıcının kabuk olarak /bin/falseveya /bin/truehangi, neredeyse eşdeğer ) herhangi bir komutu çalıştırmak için giriş yapma kullanıcıyı yasaklar. SSH, komutları çalıştırmak için her zaman kullanıcının oturum açma kabuğunu çağırır, bu nedenle oturum açma kabuğunu bazı komutları çalıştırabilecek bir tanesine ayarlamanız gerekir.

Kullanıcıların yalnızca birkaç komut çalıştırmasına izin veren birkaç sınırlı kabuk vardır. Örnek için rssh ve scponly kullanıcı (örneğin birkaç önceden tanımlanmış komutları çalıştırmasına izin ikisi böyle kabukları vardır scp, sftp-server, rsync, ...). Ayrıca bkz . Linux'ta kullanıcı erişimini kısıtlama ve SCP için bir kabuğa mı ihtiyacınız var?


Teşekkürler, uzaktan komutları çalıştırabilmesi için hesaba bir giriş kabuğu vermeye istifa ettim. Daha iyi bir çözüm muhtemelen mevcut kullanıcı olarak ssh olurdu ve ssh komutu için sudo -u çağrısı olurdu, ancak bu benim durumumda tamamen geçerli değildir.
Centimane

1

Cevap hayır gibi görünüyor.

ssh user@machine [command]

ssh anahtarları sadece yerinde olduğunda:

This account is currently not available

komut yürütmektense bash'e erişim izni vermem gerekecek gibi görünüyor.


-4

Bunun mümkün olup olmadığını bilmiyorum (yine de test edilmesi kolay olmalı), ancak muhtemelen sorunuza belirli bir şekilde cevap veren ve her durumda sorununuzu çözen bir özellik var.

İçindeki anahtar satıra bir komut ekleyebilirsiniz authorized_keys. Bu durumda bu komut yürütülür, başka bir şey yoktur. /sbin/nologinKabuğun yine de göz ardı edilmesi gerektiği için bunun işe yaradığını varsayıyorum .

Ancak izin verdiğiniz her komut için farklı bir anahtara ihtiyacınız olacaktır.


Maalesef ihtiyacım olan çözüm bundan daha esnek olmalı
Centimane

eğer test etmek kolaysa, bir cevap yazmadan önce test etmelisiniz.
Michael Martinez

@MichaelMartinez Soru sormadan önce kolay testler yapmak sorucının görevidir. Soruyu cevaplamadığı, ancak soruna neden olan sorun için bir teklif yaptığını fark etmek zor değil. Hangi bir cevap olarak mükemmel uygundur. Bunu küçümsemek sadece aptalca. İlk paragraf olmadan cevabı eleştirir misiniz? Kesinlikle.
Hauke ​​Laging

3
Komut authorized_keys, giriş kabuğu tarafından yürütülür, bu nedenle hayır, bu çalışmaz (ek önemsiz yapılandırma olmadan değil). (Yanlış bir cevap “aptal” cevabı nasıl? Lütfen başkalarına saygı gösterin .)
Gilles 'SO- kötü olmayı bırak'
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.