2016-08-02 30 views
5

Ich ziehe von AWS und verwende Ansible für Bereitstellungen in einer Google Cloud-Computing-Instanz. Ich versuche, ein paar Benutzer auf der Box mit autorisierten Schlüsseln einzurichten. Dies war früher für AWS, scheint aber für Google Compute etwas anders zu sein. Hier ist was ich mache.Einrichten von externen authorized_keys bei Google Compute

Erstellt einen ssh-Schlüssel lokal. Setzen Sie diesen Schlüssel (öffentlich) in anisible Dateien und kopieren Sie diese in einen neuen Benutzer erstellt (über anssible) in /home/deploy/.ssh/authorized_keys

Ich kann immer noch nicht mit diesem Schlüssel aus meiner lokalen Box einloggen.

$ ssh -i ~/.ssh/deploy_rsa [email protected]<host> 

Gibt es eine Liste von Benutzern, die sich in die Box einloggen dürfen? Kann ich die Benutzer nur so konfigurieren, dass sie sich bei der Cloud-Konsole anmelden?

EDIT

$ ssh -i ~/.ssh/deploy_rsa [email protected]<host> 
... skipped some logs here .... 
    Here's SSH logs from client side: 
    debug1: SSH2_MSG_SERVICE_ACCEPT received 
    debug2: key: /Users/ankit/.ssh/gcloud-rsa (0x7ff1d16105e0), 
    debug2: key: /Users/ankit/.ssh/deploy_rsa (0x0), explicit 
    debug1: Authentications that can continue: publickey 
    debug3: start over, passed a different list publickey 
    debug3: preferred publickey,keyboard-interactive,password 
    debug3: authmethod_lookup publickey 
    debug3: remaining preferred: keyboard-interactive,password 
    debug3: authmethod_is_enabled publickey 
    debug1: Next authentication method: publickey 
    debug1: Offering RSA public key: /Users/ankit/.ssh/gcloud-rsa 
    debug3: send_pubkey_test 
    debug2: we sent a publickey packet, wait for reply 
    debug1: Authentications that can continue: publickey 
    debug1: Trying private key: /Users/ankit/.ssh/deploy_rsa 
    debug3: sign_and_send_pubkey: RSA SHA256:h+yezPKOVjeA2ZKOAN/1r1GRe2s1nyGKwG6wobm+Vh0 
    debug2: we sent a publickey packet, wait for reply 
    debug1: Authentications that can continue: publickey 
    debug2: we did not send a packet, disable method 
    debug1: No more authentication methods to try. 
    Permission denied (publickey). 

Der andere Schlüssel der Client Kommissionierung von ~/.ssh/config

+0

Versuchen Sie Folgendes: http://stackoverflow.com/questions/37798431/error-creating-vm-instance-in-google-compute-engine/37802599 Beachten Sie, dass Sie möglicherweise zufällige Internet-Ausgangsgebühren erleiden, wenn Sie zu viele öffnen Häfen rücksichtslos. Wie @Dagang sagt, öffnen Sie einfach Port 22 (2. der 3 Regeln in der Verbindung) – Salmonstrikes

+0

Hallo @Salmonstrikes Ich glaube nicht, dass das Problem mit dem Networking ist. Es lässt mich ssh vom primären Benutzer. Es blockiert nur den zweiten Benutzer, den ich auf der Box manuell konfiguriere. Es scheint ein Problem mit der Authentifizierung der VM zu sein (sshd pam?) – Ankit

+0

Können Sie überprüfen, ob /home/deploy/.ssh/authorized_keys tatsächlich existiert? Ich habe versucht, einen neuen Benutzer auf dem Remote-Host zu erstellen, aber stellte sich heraus, sein Home-Verzeichnis wurde nicht einmal irgendwie erstellt. – Dagang

Antwort

1

Ich weiß nicht viel über ansible, hoffen, dass die folgende Dokumentation Hilfe Connecting to Instance, Adding and Removing SSH Keys, Creating User Accounts for Linux Instances

BTW, es ist auch möglich, aufgrund der Firewall-Einstellungen. In nicht standardmäßigen Netzwerken ist tcp: 22 standardmäßig nicht zulässig.

+0

Danke, ich bin vertraut mit dem Hinzufügen und Entfernen von Schlüsseln mit der Konsole. Stattdessen möchte ich das Linux-Konzept von authorized_keys verwenden: http://www.linuxproblem.org/art_9.html Also möchte ich ein paar Benutzer mit bestimmten autorisierten Schlüsseln erstellen. Ich bin in der Lage, von meinem primären sshkey, den ich eingerichtet habe, ins System zu gehen, das ist kein Problem mit dem Netzwerk. Ich möchte in der Lage sein, mehr solche Benutzer mit Ansible (nicht über die Konsole) zu erstellen – Ankit

+0

Haben Sie/var/log/secure oder /var/log/auth.log überprüft? –

+0

Ich habe nachgeschlagen /var/log/auth.log, ich habe nicht viel bei einem anderen Fehler bekommen als: '3. Aug 20:29:42 instance-1 sshd [8011]: Verbindung geschlossen von 71.198.45.230 [preauth ] ' Es scheint, als ob Google sein eigenes PAM-Modul hat oder irgendwie ssh kontrolliert, das mich davon abhält, einen neuen passwordless ssh-Benutzer zu verursachen. Ich habe auch die authorized_keys geändert, nachdem ich sie in Google Console eingerichtet habe. Aber dann wurde es automatisch auf die alte Version umgestellt, die ich von Console aus eingestellt habe (wer macht das?) – Ankit