Github некалькі уліковых запісаў адзін кампутар заўсёды бачыць адзін уліковы запіс

Гэта, верагодна, не DUP; Я прачытаў шмат падобных праблем на StackOverflow, але не гэта пытанне.

Я спрабую выкарыстоўваць некалькі уліковых запісаў Git на Ubuntu Linux і кожны раз, калі я спрабую націснуць з 2-га рахункі ён думае, што я да гэтага часу, выкарыстоўваючы імя першага акаўнта.

$ git push -u origin master
ERROR: Permission to /.git denied to .

Я першы паспрабаваў некалькі ключоў SSH метад. Калі я атрымаў вышэйпаказаную памылку, то я стварыў зусім новы карыстальнік на маёй лакальнай машыне, ўвайшлі ў сістэму як карыстальнік, ўзноўлены мясцовы рэпазітар (яго першы штуршок) і паспрабаваў яшчэ раз. Тая ж памылка. Мой мясцовы .config паказвае карыстальніку, як і так робіць мой ~/.gitconfig.

Любыя ідэі?

Я раблю: SSH @localhost то SSH -vvv -T [email protected]

Я атрымліваю гэты цікавы выснова. Здаецца, сысці і знайсці ключ ў маім рахунку. Але неяк ён выкарыстоўвае ключ у маім рахунку, які на самай справе не павінны мець доступ.


debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home//.ssh/known_hosts:1
debug2: bits set: 513/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: Wrote 16 bytes for a total of 1015
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug3: Wrote 48 bytes for a total of 1063
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key:  
debug2: key:  
debug2: key: /home//.ssh/identity ((nil))
debug2: key: /home//.ssh/id_rsa ()
debug2: key: /home//.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,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 public key: 
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Authentications that can continue: publickey
debug1: Offering public key: 
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1863
debug1: Remote: Forced command: gerve 
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp 
debug3: sign_and_send_pubkey
debug3: Wrote 640 bytes for a total of 2503
debug1: Remote: Forced command: gerve 
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug3: Wrote 128 bytes for a total of 2631
debug2: callback start
...
7
зрабіў усё, што зноў у віртуальнай машыне (дзе ACT1 не існуе), і яна працавала ... але гэта, безумоўна, не з'яўляецца ідэальным :-(
дададзена аўтар AndrewStone, крыніца

4 адказы

Гэта адбываецца таму, што SSH-агент кэшуецца ключ SSH (вы можаце нават выдаліць гэты файл, і ён будзе па-ранейшаму дазваляе SSH паспяхова падлучыцца, пакуль кэш не будзе скінуты) і прыярытэт кэшаваных ключоў нават на тых, што паказаны праз IdentityFile. Вы можаце ўбачыць, якія файлы кэшуюцца бегу:

ssh-add -l

Вы можаце прымусіць SSH-агент ігнараваць кэш, у тым ліку IdentitiesOnly «так» у .ssh/канфігурацыі для кожнага злучэння:

Host github
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_dsa_work
  IdentitiesOnly yes

More information here: http://sealedabstract.com/code/github-ssh-with-multiple-identities-the-slightly-more-definitive-guide/

Гэта заняло ў мяне некаторы час, каб выявіць гэта таксама, спадзяюся, гэта дапаможа камусьці.

10
дададзена
Гэта велізарная, велізарная дапамогу Філ. Гэта адразу ж вырашыць маю праблему.
дададзена аўтар AKWF, крыніца

Для таго, каб выказаць свае здагадкі на гэты адказ, гучыць з назвы пытання, як калі б тое, што вы сапраўды хочаце зрабіць гэта, каб быць у стане націснуць на GitHub быць ідэнтыфікавана як розныя карыстальнікі GitHub.

Калі гэта так, то вы не павінны ствараць некалькі карыстальнікаў на вашай сістэме, толькі для таго, каб вылучыць у якасці розных карыстальнікаў GitHub праз SSH. Правільны спосаб зрабіць гэта, каб стварыць два псеўданіма для github.com у ~/.ssh/канфігурацыі , якія вызначаюць розныя файлы, якія сведчаць асобу, як апісана тут . Напрыклад, вы маглі б мець у сваім ~/.ssh/канфігурацыі наступнае:

Host github-act1
  HostName github.com
  User git
  IdentityFile /home/whoever/.ssh/id_rsa.act1

Host github-act2
  HostName github.com
  User git
  IdentityFile /home/whoever/.ssh/id_dsa.act2

Затым вы можаце дадаць два пультаў ДК у рэпазітар:

git add remote act1 [email protected]:whoever/whatever.git
git add remote act2 [email protected]:whoever/whatever.git

Затым, калі вы хочаце, каб націснуць, як адзін карыстальнік, вы можаце зрабіць:

git push act1 master

... або як другі рахунак:

git push act2 master
3
дададзена
@AndrewStone: як вы увайсці ў сістэму як другі карыстальнік? Што рэха $ HOME паказаць вам, як толькі вы ўвайшлі ў сістэму другога карыстальніка?
дададзена аўтар Mark Longair, крыніца
Гэты метад працуе выдатна падыходзіць для мяне.
дададзена аўтар Nick, крыніца
да я паспрабаваў гэты метад раней усіх. Тая ж памылка. Затым я пайшоў да шматразовым UNIX рахункаў метад, думаючы, што ў мяне была нейкая праблема SSH канфігурацыі ...
дададзена аўтар AndrewStone, крыніца
SSH @localhost. Ён паказвае/дом/. Выбачайце за затрымку ў рэагаванні 4 дні адключэння электраэнергіі
дададзена аўтар AndrewStone, крыніца
debug2: key:  
debug2: key:  
debug2: key: /home//.ssh/identity ((nil))
debug2: key: /home//.ssh/id_rsa ()
debug2: key: /home//.ssh/id_dsa ((nil))

Гэта выглядае вельмі падазрона. Чаму ваш хатні каталог толькі /галоўная/? Калі больш чым адзін карыстальнік мае той жа хатні каталог, то я не здзіўлены SSH знаходзіць адзін і той жа ключ для абодвух карыстальнікаў. праверце вынікі

echo $HOME

пры ўваходзе ў сістэму ў якасці кожнага карыстальніка. Яны павінны паказваць на розныя каталогі.

0
дададзена

Паглядзіце на дазволу на .git тэчку і яго змесціва. Пацвердзіце, які ключ SSH ў цяперашні час перадаецца на GitHub з SSH github.com -vvvv .

0
дададзена
Вы можаце мець няправільны хатні каталог. Што PWD ~ сказаць?
дададзена аўтар Adam Dymitruk, крыніца
SSH [email protected] -vvvv кажа: «Прывітанне » (няправільны рахунак) Я б капанні праз усе выходныя, каб зразумець, чаму
дададзена аўтар AndrewStone, крыніца
па нейкай прычыне SSH дасягае больш у іншай мой карыстацкі акт і глядзіць на яго. Яна выводзіць: debug2: ключ: /home//.ssh/id_rsa і "аддалены: прымусовая каманда: gerve "
дададзена аўтар AndrewStone, крыніца