Wie kann ich als anderer Benutzer in eine Box ssh, wenn der Host-Benutzer keinen ssh-Schlüssel auf dem Remotecomputer hat?

12

Nehmen wir an, mein Benutzername für meinen Mac ist John.

Ich habe ein vollständig konfiguriertes Slicehost-Konto. Beachten Sie, dass auf diesem Slice kein SSH-Schlüssel für John vorhanden ist.

Jetzt konfiguriere ich diese Box für SSH-Zugriff für die Bereitstellung durch den Benutzer.

Auf meinem Mac-Computer habe ich den privaten Schlüssel für die Bereitstellung durch den Benutzer. Slicehost verfügt über einen öffentlichen Schlüssel für die Benutzerbereitstellung.

Auch hier hat slicehost nichts für User john.

Wenn ich als User-Deployment in die sliceghost-Box sshen möchte, muss ich dort auch den öffentlichen Schlüssel für John ablegen?

user35340
quelle
Der Vollständigkeit halber würde ich diesen Link hinzufügen, damit ich später darauf verweisen kann. gist.github.com/df7d13a0556cd4a1bc13
user35340

Antworten:

21

Art von.

Sie müssen Ihren öffentlichen Schlüssel für das Konto, von dem Sie kommen, auf dem Remote-Server ablegen. Wenn dies Ihr John-Schlüssel ist, legen Sie diesen Schlüssel auf den Server, zu dem Sie eine Verbindung herstellen, und verwenden Sie das entsprechende Konto für diesen Server.

In Ihrem Fall stellen Sie eine Verbindung als Bereitstellung her. Wenn Sie eine Verbindung herstellen, geben Sie Folgendes ein:

ssh deploy@slicehost

Wenn sich Ihr Schlüssel für John in der Datei .ssh / authorized_keys des Kontos deploy befindet , erhalten Sie direkten Zugriff.

Jim
quelle
1
Hält das nicht den ganzen Zweck der Anmeldung als jemand anderes außer Kraft? In diesem Fall muss ich also den öffentlichen Schlüssel sowohl für John als auch für deploy in die authorized_keys-Datei einfügen.
user35340
3
Nein, wir machen das die ganze Zeit für SFTP-Backups. Wir generieren ein öffentlich-privates Schlüsselpaar auf jedem System, das wir sichern müssen. Den öffentlichen Schlüssel für dieses Konto / diesen Computer legen wir auf unserem Sicherungsserver unter einem Benutzer ab, z. B. Sicherungsbenutzer. Zum Sichern vom Clientcomputer senden wir einen SFTP-Befehl an backup-user @ backup_machine. Der Benutzer auf dem Client-Computer spielt keine Rolle. Es ist nur wichtig, dass sich ein öffentlicher Schlüssel für diesen Computer in der Datei authorized_keys auf dem Sicherungsserver im Verzeichnis .ssh des Sicherungsbenutzerkontos befindet. Klappt wunderbar.
Jim
1

Nein. Der Benutzername hat nichts mit dem öffentlichen / privaten Schlüsselpaar zu tun. Es ist nirgends in einer der Tasten aufgezeichnet. Solange Sie den öffentlichen Schlüssel in die .ssh/authorized_keysDatei eines Benutzers einfügen, können Sie sich mit dem privaten Schlüssel als dieser Benutzer anmelden.

Kamil Kisiel
quelle
Ich versuche nur sicherzustellen, dass ich es richtig verstehe. Solange John den privaten Schlüssel für die Bereitstellung und den öffentlichen Schlüssel für die Bereitstellung in der Datei authorized_keys hat, sollte John sich als Bereitsteller anmelden können.
user35340
Das scheint für mich nicht zu funktionieren - ich habe das .ssh.authorized_keysvon einem Konto auf das andere kopiert, kann mich aber immer noch nicht anmelden
Edgar H
1

Sie müssen sowohl angeben, dass Sie sich als Benutzer "deploy" anmelden möchten, als auch die Identitätsdatei für die Bereitstellung angeben.

ssh -i ~/.ssh/id_deploy.rsa deploy@slicehost

Dabei ist id_deploy.rsa die private Schlüsseldatei, die dem autorisierten Schlüssel entspricht, den Sie auf das Slicehost-Konto hochgeladen haben.

David Smith
quelle