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'
su
from nonroot erfordert das Kennwort des neuen Benutzers, auf dem es ausgeführt wird (A), da Unix als Mehrbenutzersystem konzipiert wurde. Versuchen Sie dassu transfer -c 'echo hi'
zu sehen. Sie können mitsudo
diesem besonderen ausgewählten Benutzern erlauben , laufenssh
auf A, oder Sie können nur ausgewählte Benutzer geben auf A der privatekey , die sie verwenden können fürssh
den Zugriff auf B alstransfer
.ohne einen mittransfer
Benutzer A überhaupt.