2013-03-21 14 views

Odpowiedz

31

Czy próbowali za pomocą cały pilota URL?

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

i zostaniesz poproszony o podanie hasła

+0

Tak, próbowałem go. Zwykle kopiuję i wklejam z "git remote -va". Działa, chociaż tworzy dodatkowy zdalny oddział śledzący na wyciągach. – Andor

+0

Zwykle używam klucza publicznego do przepychania zatwierdzeń. Mimo że określiłem innego użytkownika, nadal otrzymuję komunikat 'Permission denied (publickey). fatal: Nie można odczytać z zdalnego repozytorium. "Jak przesłać, aby móc wprowadzić hasło do innego konta? – nipponese

5

Adres ssh zarejestrowana git remote prawdopodobnie już zawierać nazwę użytkownika, więc trzeba by użyć kompletnego ssh url podobny:

[email protected]:arepo 

to nie zadziała, ponieważ ssh użyje domyślne klucze publiczne/prywatne (obecnie używane przez pierwszego użytkownika do uwierzytelniania).

można zarejestrować nowego pilota w lokalnej konfiguracji:

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

Musisz mieć $HOME/.ssh/config plik, w celu zdefiniowania wpis ssh „otheruser”, ponieważ ssh musi wiedzieć, co publiczne/klucz prywatny musi używać: nie mogą być te domyślne ($HOME/.ssh/id_rsa i $HOME/.ssh/id_rsa.pub)

patrz na przykład „how to add deploy key for 2 repo with 1 user on github

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

To zakłada zapisaniu kluczy publicznych/prywatnych dla otheruser jak:

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

Teraz można użyć, że nowy zdalny do pchania:

git push originOtheruser master 
+1

Szukałem przez Stackoverflow i Google przed tym pytaniem. Potrzebuję szybkiego/"w locie"/tymczasowego rozwiązania, a nie stałego. Nazwa użytkownika nie jest celowo dołączana do zdalnego adresu URL, a uwierzytelnianie klucza publicznego jest opcjonalne na tym serwerze repo. To naprawdę nie jest to, czego chcę. – Andor

+0

@ user77376 "Uwierzytelnianie kluczem publicznym jest opcjonalne na tym serwerze repo"? To nie jest połączenie ssh. Jeśli chcesz określić innego użytkownika, to jest to '$ HOME/.ssh/config'. To może nie być to, czego chcesz, ale to jest wymagane do korzystania z ssh z innym użytkownikiem: sposób na określenie klucza publicznego/prywatnego. Jeśli obecnie nie masz 'id_rsa (.pub) "gdzieś, to nie mówimy o CII (lub nie ssh, który znam). – VonC

+1

To zwykły ssh, ale można również uwierzytelnić za pomocą hasła. W przypadku zwykłego połączenia ssh należy podać najpierw nazwę użytkownika i hasło/klucz publiczny/bilet Kerberos lub dowolne uwierzytelnienie akceptowane przez serwer. – Andor

17

Po wykonaniu zatwierdzeń, można użyć następującej składni:

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

Zostaniesz poproszony o podanie github hasło do przetwarzania push.

Na przykład, jeśli nazwa użytkownika github jest „foobar”, repozytorium klon url jest „https://github.com/bar/ish.git”, a gałęzie lokalnych i zdalnych są nazywane „nonce”, można użyć następujących:

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

Uwaga Github: Jeśli włączone jest uwierzytelnianie dwuskładnikowe (2FA), musisz podać osobisty token dostępu zamiast hasła, gdy pojawi się monit o podanie hasła (Zobacz: https://help.github.com/articles/providing- your-2fa-authentication-code/# through-the-command-line) – qff

8

używam

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

będzie to poprosi o nazwę użytkownika oraz hasło

+2

To jest specyficzne dla Github, podczas gdy pierwotne pytanie dotyczy Gita bardziej ogólnie. –

+0

Uwaga Github: Jeśli włączone jest uwierzytelnianie dwuskładnikowe (2FA), musisz podać osobisty token dostępu zamiast hasła, gdy pojawi się monit o podanie hasła (Zobacz: https://help.github.com/articles/providing- your-2fa-authentication-code/# through-the-command-line) – qff

Powiązane problemy