2013-06-12 8 views
8

Ich habe versucht, ssh-Schlüssel zu verwenden, um mit Hilfe von sudo su - username von einem Benutzer zu einem anderen Benutzer auf demselben Linux-Rechner/Server wechseln zu können.Benutzer mit "sudo su - username" unter Verwendung von SSH-Schlüsseln wechseln

Was ich tun möchte, ist: Ich habe mehrere Konten auf einem Server. Ich möchte nur mit SSH-Schlüssel diejenigen Konto mit passwd -l username, und ermöglichen den Zugang zu sperren, durch ssh-ing von einem Benutzer zum anderen auf der gleichen Maschine, zB: [[email protected]]$ ssh [email protected]

ich dies tat durch den öffentlichen Schlüssel kopieren von user1 zu der authorized_keys Datei von user2 und es funktioniert gut.

Aber die andere Sache, die ich auch tun möchte, ist in der Lage zu sudo su - user2 von user1, mit den ssh-Tasten, so dass ich die Passwortaufforderung vermeiden kann.

z.B. [[email protected]]$ sudo su - user2

Ich habe die sshd_config-Datei geändert, und Kommentar- der Felder:

RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile .ssh/authorized_keys 
PasswordAuthentication no 

aber noch bin ich es zu tun, nicht in der Lage.

Ich habe auch versucht, was ich im Internet über Agentenweiterleitung gefunden, aber nichts.

Kann mir jemand helfen wie ich das mache oder auf die richtige Richtung zeige?

+0

'sudo' weiß nichts über, noch über' ssh' Schlüssel schert. Sie sind völlig verschiedene Dinge. Um passwortloses 'sudo'-Arbeiten zu erhalten, müssen Sie' sudo' korrekt konfigurieren. – twalberg

Antwort

4

sudo hat nichts mit SSH und sshd config zu tun.

Was Sie wirklich wollen, ist ein PAM-Modul, das SSH öffentliche Schlüssel verwenden wird. Ich bin nicht sicher, was deine Gründe sind, da die ganze Idee ein bisschen seltsam erscheint, aber, naja. pam_ssh ist das Modul, das dies tut.

+0

Hallo kirelagin, Der Grund, warum ich dies tun möchte, ist, weil ich zu anderen Benutzern auf der gleichen Maschine wechseln möchte, ohne zuerst root werden und dann zu dem anderen Benutzer wechseln. Also dachte ich, dass die SSH-Schlüssel eine Lösung dafür sein würden. Aber ich glaube ich lag falsch. Stattdessen möchte ich mit sudo su - user2 von einem Benutzer zu einem anderen wechseln (ohne root zu werden) und die Kennwortabfrage vermeiden. Also dachte ich, dass ssh-Schlüssel hier helfen würden. – Pier

+0

Sicher, ssh Schlüssel können dir helfen, aber du brauchst 'sudo' dann nicht,' su' ist genug. Wie bereits erwähnt, können Sie das 'pam_ssh'-Modul verwenden und Ihr PAM so konfigurieren, dass es für die 'su'-Authentifizierung verwendet wird. Beachten Sie, dass Sie trotzdem das Passwort eingeben müssen, um Ihren SSH-Schlüssel zu entschlüsseln, denn wenn Ihr Schlüssel nicht mit einem Passwort verschlüsselt ist, ist es irgendwie nutzlos. – kirelagin

+0

@Kirelagin - ssh-Agenten machen den Job für die Eingabe von Passwörtern –

4

sudo Um passwordless an einen anderen Benutzer zu arbeiten, das sind die Änderungen erforderlich (führen sie mit Superuser-Zugriff):

bearbeiten/etc/sudoers

visudo 

Config ändert

# Allow user to sudo su as anyone without password 
user ALL=(ALL)  NOPASSWD: ALL 
%group ALL=(ALL)  NOPASSWD: ALL 

# Allow user to become another user 
user ALL=(user2) NOPASSWD: ALL 
%group ALL=(user2) NOPASSWD: ALL 

jetzt mit dem letzteren Sudo su - Benutzer2 sollte funktionieren

Die nur Stolperstein wurde der Benutzer sudo Gruppe

usermod -a -G sudo user 

Die obigen Beispiele hinzugefügt werden in der Config zuerst den Benutzer dann zeigt nach Gruppe - Sie benötigen 1 der nur zwei -

Editiert:

visudo 

%group2 ALL=(ALL:ALL) PASSWD: ALL 
%group1 ALL=(ALL:ALL) NOPASSWD: ALL 

Add Laufgruppe

groupadd group1 
groupadd group2 

so für Benutzer, die ein Passwort erfordern

usermod -a -G group2 user1 
usermod -a -G group2 user2 
etc.. 

für Anwender, die kein Passwort erfordern:

usermod -a -G group nuser1 
usermod -a -G group nuser2 
etc 
+0

Hallo Vahid, ich danke Ihnen für Ihre Antwort. So benutze ich die ssh-Tasten nicht. Lassen Sie mich klarstellen, was ich zu tun versuche. Angenommen, ich habe user1, user2 und user3. Ich möchte Benutzer1 in der Lage sein, zu Benutzer2 mit SSH-Schlüssel und ohne zur Eingabe eines Passworts aufgefordert werden. Das gleiche gilt für user2 bis user1. Aber ich möchte nicht, dass Benutzer3 zu anderen Benutzern ohne Passwort wechseln kann. Hier in diesem Beispiel betrachte ich nur 3 Benutzer, aber in Wirklichkeit habe ich etwa 50 Benutzer in einmal Maschine. Also, zur sudoers-Datei zu gehen und für jeden Benutzer diese 50 hinzuzufügen ist nicht so effizient, außer ich liege falsch. – Pier

+0

tun Sie es über Gruppen dann - erstellen Sie Gruppen, die die Varianten enthalten und schließen Sie dann die Benutzer als Teil der Variationen also group1 {erlaubte Benutzer} group2 {andere Regel} dann mit der sudo-Konfiguration würden Sie dann zwei Zeilen% Gruppe und% Gruppe2 benötigen - Es gibt keine Beziehung zwischen sudo und ssh config .. – Vahid

+2

http://www.evans.io/posts/ssh-agent-for-sudo-authentication/ werfen Sie einen Blick hier, um zu versuchen, die beiden zu kombinieren - es gibt eine typische Einrichtung keine Beziehungen .. – Vahid