Account heroku multipli


92

Ho problemi quando lavoro con più account Heroku sul mio computer.

Il fatto è che ha funzionato benissimo prima cambiando account con la gemma heroku. Ma ora (anche se ho generato nuove chiavi SSH) non funzionerà.

Quando lo faccio git push heroku masterdice solo:

my@email.com non autorizzato ad accedere a my_app_name

Qualcuno ha qualche consiglio su come risolverlo?


cosa offre ssh yourid @ server -v?
Adam Dymitruk

"Autorizzazione negata (chiave pubblica)."?
Erik

Oh, una nota ... L'e-mail "my@email.com" non è la stessa e-mail dell'account Heroku ... quindi sembra che ci sia una sorta di confusione che sta causando il problema.
Erik

copia sia le chiavi private che quelle pubbliche nella tua directory git / .ssh /. per me va bene!
Dmitri Algazin

Risposte:


162

È necessario assicurarsi di utilizzare la chiave ssh corretta.

Il modo per farlo (e il modo in cui il plug-in degli account heroku ti richiede) è aggiungere una sezione al tuo file di configurazione ssh in ~ / .ssh / config. Ad esempio, per il mio account heroku di lavoro ho questo nella mia configurazione ssh:

Host heroku.work
  HostName heroku.com
  IdentityFile ~/.ssh/id_heroku_work_rsa
  IdentitiesOnly yes

Ora, e questo è fondamentale, devi assicurarti che il tuo git remote sia configurato per utilizzare lo stesso host con nome . In questo caso è heroku.work . Normalmente sarebbe heroku.com se usassi heroku con un solo account.

Quindi dovrai modificare il telecomando git (puoi farlo nel .git/configfile del tuo repository sulla tua macchina). Cambia il file in modo che assomigli a:

 [remote "heroku"]
   url = git@heroku.work:<appname>.git

Nota l'heroku. lavoro , non heroku. com e sostituisci <appname> con il nome della tua app (ovvero il nome del tuo repo) su heroku.


1
Grazie, era quello di cui avevo bisogno quando ho creato la mia app prod dalla dashboard di Heroku.
Bachet

1
git@heroku.work ... non esiste come endpoint, però. Come faccio a renderlo l'endpoint a cui eseguire il push? - Ah, hai bisogno del plugin degli account heroku.
jmstone617

1
@jmstone Le modifiche per .ssh/configfarlo in modo che si heroku.workrisolva inheroku.com
bantic

Sì, era un altro problema da parte mia, ho capito tutto. Grazie!
jmstone617

Ho aggiunto questa pagina ai segnalibri. Ogni volta che ho problemi a spingere su Heroku, leggo questa risposta e mi rendo conto di cosa devo fare.
septerr


8

Devi essere accettato come collaboratore del progetto che non possiedi.

Funziona in questo modo (usando git):

  1. Il proprietario del progetto va alla console di heroku per il progetto
  2. Il proprietario aggiunge l'indirizzo email del collaboratore (quello che è stato utilizzato per registrare il collaboratore)
  3. Il collaboratore imposta la sua chiave di pubblica sicurezza nel suo account (se non lo ha già fatto)
  4. Il collaboratore aggiunge e imposta l'altro progetto come un altro telecomando

E questo dovrebbe essere tutto gente; devi solo premere l'altro telecomando durante la distribuzione sull'altra app.


Grazie!!! Ho passato ore a cercare di capirlo. Anche provando tutti i diversi approcci su SO e altri siti. Aggiungere la stessa email a entrambi i progetti su Heroku è sicuramente la soluzione più semplice.
B Seven

Ho passato anni a creare un file di identificazione e fare tutti i tipi di trucchi per far funzionare più chiavi, ma questa risposta è di gran lunga il modo più semplice per farlo funzionare. Aggiungi il tuo account originale come collaboratore e utilizza la stessa chiave. Facile.
Peter Nixey,

6

Aggiungerei un paio di cose al plugin heroku-accounts ... questo esempio presume che il tuo account heroku preesistente sarà heroku.work e tu stia aggiungendo un nuovo account heroku.personal.

Descrive anche come spostare un'app dall'una all'altra, ad esempio se hai raggiunto il massimo di 25 app e stai creando un nuovo account e desideri spostare alcuni dei tuoi progetti collaterali e delle app sperimentali dal tuo account principale.

  1. Probabilmente hai bisogno di usare il plugin per creare SIA il tuo vecchio e il tuo nuovo account, ad esempio, se ne avevi uno per iniziare non puoi semplicemente aggiungere un nuovo heroku.personal, devi creare heroku.work per sostituire quello vecchio
  2. Dovrai riassegnare le tue vecchie app al tuo heroku.work
  3. se stai spostando un'app, non assegnare l'app a heroku.personal (utilizzando heroku accounts:set personal) fino a dopo aver trasferito l'app utilizzando il comando heroku sharingcome descritto https://devcenter.heroku.com/articles/transferring-apps

Quindi i passaggi di cui probabilmente avrai bisogno sono:

  1. Installa il plug-in dell'account heroku
  2. Vai su heroku.com e crea il tuo nuovo account (se non hai già un secondo account)
  3. corri heroku accounts:add work --autoper creare un nuovo account heroku.work per sostituire il tuo vecchio account predefinito (quindi usa le stesse credenziali che hai sempre usato). Devi INOLTRE caricare la tua nuova chiave su heroku:heroku keys:add ~/.ssh/identity.heroku.work.pub
  4. corri heroku accounts:add personal --autoper creare un nuovo account heroku.personal (es. usa le tue nuove credenziali per il tuo nuovo account heroku). Devi INOLTRE caricare la tua nuova chiave su heroku:heroku keys:add ~/.ssh/identity.heroku.personal.pub
  5. Per ogni app, cd alla radice del progetto quindi esegui heroku accounts:set work(tutto ciò che fa configurare git per usare il tuo heroku.work, che è (in questo esempio) lo stesso account heroku che hai sempre usato, solo che ora si chiama heroku. lavoro.
  6. Se desideri spostare un'app da heroku.work a heroku.personal, (a) aggiungi il nuovo account heroku come collaboratore con heroku sharing:add <new owner email>(b) nella tua directory locale, passa l'app a heroku.personal utilizzando heroku accounts:set personal(c) transfer ** l'app dal vecchio account al nuovo account utilizzando heroku sharing:transfer <new owner email>quindi (d) rimuovere il vecchio indirizzo email collaboratore (se lo si desidera) utilizzandoheroku sharing:remove <old owner email>

** Nota che il link heroku che ho fornito dice che ci sono requisiti speciali per spostare un'app con risorse a pagamento. In generale, rimuovi le risorse pagate, quindi aggiungile di nuovo in un secondo momento o chiedi al supporto di farlo.


6

Il plug-in Heroku https://github.com/ddollar/heroku-accounts è stato deprecato. Heroku ora mantiene il proprio su https://github.com/heroku/heroku-accounts . Sfortunatamente non sembra memorizzare progetto per progetto quale account dovrebbe utilizzare, quindi è necessario eseguire

$ heroku accounts:set account_name

ogni volta che desideri utilizzare lo strumento della riga di comando Heroku.

Soluzione rapida per le persone con accesso alla shell bash: crea una directory bin locale (è già presente nelle applicazioni Rails) e crea bin / heroku lì. Contenuti:

#!/bin/bash
/usr/bin/heroku accounts:set account_name
/usr/bin/heroku $*

(sostituire "nome_progetto" come appropriato) Quindi eseguire

$ chmod + x bin / heroku

Puoi quindi correre

$ bin / heroku esegue la console

e utilizzerà automaticamente l'account Heroku giusto per te. Meglio ancora è aggiungere ./bin al tuo percorso in modo da tornare a correre:

$ heroku esegue la console


2

Ho iniziato a utilizzare il plug-in degli account heroku, ma poi ho capito che il mio amico poteva semplicemente rendermi un collaboratore sul suo account heroku e questo era tutto ciò che era necessario.


upvate questo, soprattutto se avete la password per entrambi gli account
portforwardpodcast

1

Per far funzionare questo per me sia con Git che con la console Heroku, ho dovuto aggiungere creare la configurazione ssh come indicato da bantic, ma ho anche dovuto creare due telecomandi alla mia configurazione .git:

[remote "origin"]
  url = git@heroku.work:pacific-rock-4904.git
  fetch = +refs/heads/*:refs/remotes/heroku/*
[remote "heroku"]
  url = git@heroku.com:pacific-rock-4904.git
    fetch = +refs/heads/*:refs/remotes/heroku/*

1
E poi spingere a cosa? heroku o origine?
jmstone617

1

Questo mi ha infastidito per un po 'e non ho mai trovato una soluzione che mi piacesse. Finalmente ne ho trovato uno.

(Risposta specifica per OS X).

Puoi semplicemente creare nuovi utenti. Vai a Preferenze di Sistema -> Utenti e gruppi -> Aggiungi utente o pulsante di gruppo. Puoi creare alcuni utenti per diversi account heroku, ho appena chiamato il mio user1, user2, ecc.

Quindi vai su Preferenze di Sistema -> Condivisione -> Accesso remoto -> Consenti accesso per: Tutti gli utenti

A questo punto, puoi andare a un terminale e fare quanto segue:

$ ssh user1@localhost

Quindi puoi fare cose come questa:

$ heroku login
$ heroku keys:add

Sembra perfetto, ma è possibile dare a diversi utenti ssh l'accesso alle stesse cartelle e file?
Fellow Stranger

1

Ho usato nano .git / config, quindi ho sostituito il valore dell'URL di "heroku" remoto con heroku.com> app> impostazioni> Reveal config vars> Heroku Git URL


0

Ho lo stesso identico problema.

Questa non è la risposta, ma una soluzione temporanea è aggiungere la tua email heroku "standard" come collaboratore all'app a cui non puoi accedere.


Mi dispiace di essermi dimenticato di continuare, ma il riavvio del computer ha risolto il problema. Potrebbe non risolvere il tuo.
Erik

Sì, l'ho letto anche da qualche parte. Per me però non ha funzionato.
kbjerring

0

sto usando win7

1) crea un altro account utente in win7 e accedi ad esso

2) apri git bash e accedi al tuo nuovo account heroku

3) creare e caricare una nuova chiave RSA (istruzioni qui: https://devcenter.heroku.com/articles/keys )

4) quindi fai quello che vuoi (crea una nuova app, inviaci il file .....)

5) ogni volta che devi lavorare con il tuo account heroku originale, accedi al tuo account utente win originale e lavora con heroku


Non lo consiglierei: dover cambiare account PC locale è eccessivo quando ci sono soluzioni migliori di seguito.
Rafi Jacoby

questa è comunque un'opzione
mehdok

0

creare una nuova chiave pubblica / privata per la nuova e-mail come segue

1) ssh-keygen -t rsa -C "mvjohn@klairvoynat.com"

2) fornire un nuovo nome file in cui salvare la chiave (/home/.ssh/seckey)

3) Quindi aggiungi la tua nuova chiave a ssh-agent: - ssh-add ~ / .ssh / seckey

4) Quindi aggiungi la tua nuova chiave a heroku: - chiavi heroku: aggiungi ~ / .ssh / seckey

5) aggiungi il file di configurazione SSH come ~ / .ssh / config e il contenuto come segue

Host heroku.com Nome host heroku.com Identità porta 22 Solo sì IdentityFile ~ / .ssh / seckey Utente mvjohn@klairvoynat.com

Host heroku.com Hostname heroku.com Port 22 Identities Solo yes IdentityFile ~ / .ssh / id_rsa Utente mvjohn@hotmail.com

6) clona il codice usando l'uno o l'altro

a) git clone git@heroku.com: tua-applicazione.git b) heroku git: clone -a tua-applicazione


0

Installa il plugin per account Heroku e configuralo !!

Installazione

 heroku plugins:install heroku-accounts

Utilizzo

Per aggiungere account:

$ heroku accounts:add personal
  Enter your Heroku credentials.
  Email: david@heroku.com
  Password: ******

Per elencare gli account:

$ heroku accounts
  * personal
    work

Per passare a un altro account:

heroku accounts:set personal

Per trovare l'account corrente:

$ heroku accounts:current
  personal

Per rimuovere un account:

$ heroku accounts:remove personal
  Account removed: personal

impostato sul tuo account heroku di lavoro e invia le modifiche.


-1

Modifica la tua configurazione per quel progetto, impostando l'email corretta. Dalla radice di quel repository,git config user.email <heroku email>


Sembra non avere alcun effetto temo ...
Erik

E quando aggiungi il flag "--global" a quel comando? A volte la gemma di Heroku lo leggeva al posto dell'email di repo del progetto per me.
danneu
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.