Wie kann ich mich als normaler Benutzer ohne Passwort anmelden?


1

Ich habe mich gefragt, ob mir jemand mit meinem Skript helfen kann.

Ich habe 2 Server. Nennen wir sie Server A und Server B. Auf Server B ist eine Software installiert, die ich auf Server A ausführen möchte. Ich kann die Software nicht auf Server A installieren.

Ich muss Benutzer eine andere Software auf Server A ausführen lassen, die dann ein Skript aufruft, um die Software auf Server B aufzurufen und einen Befehl auszuführen.

Also habe ich einen Benutzer namens transfer auf Server A und Server B erstellt. Ich habe zugelassen, dass die Übertragung in Server B erfolgen kann, ohne dass ein Kennwort mit Authentifizierungsschlüsseln erforderlich ist.

Jetzt versuche ich von Server A aus, ssh auf Server B zu übertragen und den Befehl auszuführen.

Dies funktioniert perfekt als root. Wenn ich selbst oder ein anderer Benutzer bin, werde ich jedoch nach dem Kennwort für den Benutzer "transfer" auf Server B gefragt.

Hier ist die Befehlsfolge:

 #!/bin/bash
 su transfer -c 'ssh transfer@ServerB script $1 $2' 

Es wird nicht nach dem Passwort für B gefragt. sufrom nonroot erfordert das Kennwort des neuen Benutzers, auf dem es ausgeführt wird (A), da Unix als Mehrbenutzersystem konzipiert wurde. Versuchen Sie das su transfer -c 'echo hi'zu sehen. Sie können mit sudodiesem besonderen ausgewählten Benutzern erlauben , laufen sshauf A, oder Sie können nur ausgewählte Benutzer geben auf A der privatekey , die sie verwenden können für sshden Zugriff auf B als transfer.ohne einen mit transferBenutzer A überhaupt.
Dave_thompson_085

Antworten:


1

Erstellen Sie ein Shell-Skript, das den Remote-Befehl ausführt:

% cat > /home/transfer/exec-remote-sw <<EOF
#!/bin/bash
ssh transfer@ServerB script $1 $2
EOF
% chmod 755 /home/transfer/exec-remote-sw

Testen Sie dieses Skript, indem Sie es als transferBenutzer ausführen:

% /home/transfer/exec-remote-sw  arg1  arg2

Erstellen Sie jetzt als root eine Linux-Gruppe (zB transfer) und fügen Sie dann alle Benutzer, die Zugriff auf diese Funktionalität benötigen, in die Unix-Gruppe ein:

% groupadd transfer
% usermod -a -G transfer login1
% usermod -a -G transfer login2
...
% usermod -a -G transfer loginN

Hängen Sie als Root Folgendes an die /etc/sudoersDatei an, indem Sie Folgendes ausführen visudo:

%transfer   serverA = (transfer) NOPASSWD: /home/transfer/exec-remote-sw

Testen Sie, indem Sie sich als einer der Benutzer in der Übertragungsgruppe anmelden und Folgendes ausführen:

% sudo -u transfer /home/transfer/exec-remote-sw  arg1  arg2

Um dies für Ihre Benutzer zu vereinfachen, fügen Sie Folgendes zu ihren .profile-Dateien hinzu (oder fügen Sie es für alle Benutzer zu / etc / profile hinzu):

alias svrbexec="sudo -u transfer /home/transfer/exec-remote-sw"

Dann können Benutzer Folgendes eingeben:

% svrbexec  arg1  arg2

und der entfernte Prozess sollte mit den beiden übergebenen Parametern ausgeführt werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.