2013-03-21 15 views

risposta

31

Hai provato a usare l'intera distanza URL?

git push ssh://<temp_user>@<host>/<repo_path> <local_branch>:<remote_branch> 

e ti verrà richiesto di fornire la password

+0

Sì, l'ho provato. Di solito faccio copia-incolla da "git remote -va". Funziona, anche se crea un ramo di monitoraggio remoto aggiuntivo su pull. – Andor

+0

Di solito uso un pubkey per spingere i commit. Anche se ho specificato un utente diverso, ottengo ancora l'autorizzazione negata (publickey). fatale: Impossibile leggere dal repository remoto. Come spingere in modo che possa inserire la mia password per il diverso account? – nipponese

5

L'indirizzo ssh registrato con git remote probabilmente già includono il nome utente, quindi si avrebbe bisogno di utilizzare un URL ssh completa come:

[email protected]:arepo 

che non funzionano, perché ssh userà le chiavi pubbliche/private predefinite (attualmente utilizzate dal primo utente per l'autenticazione).

È possibile registrare un nuovo telecomando nella configurazione locale:

# use the current ssh address registered for origin, changing just the user 
# but you need a config file 
git remote add originOtheruser otheruser:arepo 

è necessario disporre di un file$HOME/.ssh/config, al fine di definire la voce ssh 'altroutente', perché ssh ha bisogno di sapere che cosa pubblica/chiave privata ha bisogno di usare: non può essere quelli di default ($HOME/.ssh/id_rsa e $HOME/.ssh/id_rsa.pub)

si veda ad esempio "how to add deploy key for 2 repo with 1 user on github"

Host otheruser 
HostName remote 
User otheruser 
IdentityFile ~/.ssh/otheruser 

che suppone che avete memorizzato le chiavi pubbliche/private per altroutente come:

$HOME/.ssh/otheruser 
$HOME/.ssh/otheruser.pub 

Ora, è possibile utilizzare tale nuovo telecomando per spingere:

git push originOtheruser master 
+1

ho cercato attraverso StackOverflow e Google prima di porre questa domanda. Ho bisogno di una soluzione veloce/al volo/ad hoc/temporanea, non permanente. Il nome utente non è intenzionalmente incluso nell'URL remoto e l'autenticazione della chiave pubblica è facoltativa su questo server di repository. Questa non è davvero la cosa che voglio. – Andor

+0

@ user77376 "L'autenticazione della chiave pubblica è facoltativa su questo server di repository"? Quindi non è una connessione SSH. Se è necessario specificare un altro utente, allora '$ HOME/.ssh/config' lo è. Potrebbe non essere quello che vuoi, ma è quello che è richiesto per usare ssh con un utente diverso: un modo per specificare la chiave pubblica/privata. Se al momento non disponi di un ID_rsa (.pub) "da qualche parte, quindi non stiamo parlando di shh (o non dello ssh con cui ho familiarità). – VonC

+1

È semplice ssh, ma si può anche autenticare con la password. Per una normale connessione ssh è necessario specificare prima un nome utente e una password/chiave pubblica/ticket kerberos o qualsiasi altra autenticazione che il server accetta. – Andor

17

Una volta fatto il commit, è possibile utilizzare la seguente sintassi:

git push https://<username>@github.com/<github repository> <local branch name>:<remote branch name> 

Ti verrà chiesto per il vostro github password per elaborare la spinta.

Per esempio, se il nome utente GitHub è "foobar", il clone URL del repository è "https://github.com/bar/ish.git", e le sezioni locali e remoti sono chiamati "nonce", è possibile utilizzare il seguente:

git push https://[email protected]/bar/ish.git nonce:nonce 
+2

Nota github: se l'autenticazione a due fattori (2FA) è abilitata, è necessario digitare un token di accesso personale anziché la password, quando viene richiesta la password (vedere: https://help.github.com/articles/providing- your-2fa-authentication-code/# through-the-command-line) – qff

8

io uso

git push https://github.com/${userName}/${repoName} 

e vi verrà chiesto di nome utente e password di ingresso

+2

Questo è specifico per Github, mentre la domanda originale riguarda Git in modo più generico. –

+0

Nota github: se è abilitata l'autenticazione a due fattori (2FA), è necessario digitare un token di accesso personale anziché la password, quando viene richiesta la password (vedere: https://help.github.com/articles/providing- your-2fa-autenticazione codice/# through-the-riga di comando) – qff

Problemi correlati