Git හි ෂෙල් විධානය ක්‍රියාත්මක කිරීමේදී භාවිතා කිරීමට පුද්ගලික SSH- යතුර නියම කරන්නේ කෙසේද?


1159

තරමක් අසාමාන්‍ය තත්වයක් විය හැක, නමුත් දේශීය පරිගණකයෙන් ෂෙල් (git) විධානයක් ක්‍රියාත්මක කිරීමේදී භාවිතා කිරීමට පුද්ගලික SSH යතුරක් නියම කිරීමට මට අවශ්‍යය.

මූලික වශයෙන් මේ වගේ:

git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"

හෝ ඊටත් වඩා හොඳයි (රූබි වලින්):

with_key("/home/christoffer/ssh_keys/theuser") do
  sh("git clone git@github.com:TheUser/TheProject.git")
end

නිශ්චිත පුද්ගලික යතුරක් භාවිතා කරන Net :: SSH සමඟ දුරස්ථ සේවාදායකයකට සම්බන්ධ වීමේ උදාහරණ මම දැක ඇත්තෙමි, නමුත් මෙය දේශීය විධානයකි. එය කළ හැකි ද?



30
මම කල්පනා කරන්නේ මෙය එතරම් අසාමාන්‍ය දෙයක් වන්නේ ඇයිද යන්න Git ට -iවිකල්පයක් sshනොමැති බවයි.
නික් ටී

32
Git 2.10 (Q3 2016) සමඟ, ඔබට නව වින්‍යාසයක් ද ඇත : git config core.sshCommand 'ssh -i private_key_file'. බලන්න මගේ පිළිතුර පහත
VonC

4
මගේ මතය අනුව, හෙයිවොච් මෙම පිළිතුර පිළිගත් පිළිතුර විය යුතු අතර එය දැනට පිළිගත් පිළිතුරට අනුව සෑම ගිට් විධානයකටම උපසිරැසියක් ලබා දීමට වඩා සැකසීමෙන් පසු සියලු git විධානයන් සාමාන්‍ය පරිදි ක්‍රියාත්මක කිරීමට ඉඩ සලසයි.
ග්ලෝරිෆෝබියා

Answers:


835

මේ වගේ දෙයක් ක්‍රියාත්මක විය යුතුයි (orip විසින් යෝජනා කර ඇත):

ssh-agent bash -c 'ssh-add /somewhere/yourkey; git clone git@github.com:user/project.git'

ඔබ උපසිරැසි වලට කැමති නම්, ඔබට පහත සඳහන් දෑ උත්සාහ කළ හැකිය (එය වඩාත් බිඳෙන සුළු වුවත්):

ssh-agent $(ssh-add /somewhere/yourkey; git clone git@github.com:user/project.git)

පරිසර විචල්‍යය අනුව එහි නියෝජිතයා සොයා ගන්නා Git විසින් SSH වෙත ආයාචනා කරනු ඇත; මෙය අනෙක් අතට යතුර පටවනු ඇත.

විකල්පයක් ලෙස, සැකසීම HOMEද උපක්රමය කරන්න පුළුවන්, ඔබ පිහිටුවීම් කැමති පමණක් අඩංගු බහලුම ලබා .sshලෙස බහලුම HOME; මෙහි එක්කෝ හැඳුනුම්පතක් හෝ වින්‍යාස ගොනු සැකසුම් හැඳුනුම්පතක් අඩංගු විය හැකිය .


6
නමුත් මෙය යතුර පිළිගත් SSH යතුරක් ලෙස ස්ථිරවම එකතු කරනු ඇත, නේද? මට එය වළක්වා ගැනීමට අවශ්‍ය නිසා theuser2 ට theuser හි ව්‍යාපෘති සමඟ පටලවා ගත නොහැක. එය වෙබ් යෙදුමක් සඳහා වන බැවින් විවිධ මෙහෙයුම් පද්ධති භාවිතා කරන්නන් ප්‍රායෝගික නොවේ, එය හොඳම විකල්පය වනු ඇත.
ක්‍රිස්ටෝෆර්

29
නැත, git සම්පුර්ණ වූ විට, ssh-agent අවසන් වන අතර යතුර අමතක වේ.
මාටින් වී. ලුවිස්

6
මෙම විධානය වින්ඩෝස් git bash මත ක්‍රියා නොකරයි. අනපේක්ෂිත ටෝකනය 'ssh-add' අසල සින්ටැක්ස් දෝෂයක් එහි සඳහන් වේ
මෝහිත්

116
ස්ථාවර විධාන රේඛාව (කවුළු හෝ ලිනක්ස් සඳහා) පහත පරිදි වේ:ssh-agent bash -c 'ssh-add sshkey; git clone url'
orip

4
මෙම ssh-agent $(..)කාරක රීති මට වැඩ නැහැ මම වග බලා ගන්න මෙම කාර්යය සිතමු ආකාරය නෑ: (BA) sh තුල විධානයන් ක්රියාත්මක කළ යුතු $(..)පරාමිතිය ලෙස පළමු, පසුව ක්රියාත්මක ප්රතිදානය සමග ssh-නියෝජිතයා.
ජොහැන්නස්ගේ මාළු සියම්කේ

1227

මෙම විසඳුම් කිසිවක් මා වෙනුවෙන් වැඩ කළේ නැත.

ඒ වෙනුවට, මම එස්එස්එච් සඳහා configගොනුවක් සැකසීම ගැන මාටින් වී. ලුවිස්ගේ සඳහන විස්තර කරමි .

SSH පරිශීලකයාගේ ~/.ssh/configගොනුව සොයනු ඇත. මගේ සැකසුම පහත පරිදි වේ:

Host gitserv
    Hostname remote.server.com
    IdentityFile ~/.ssh/id_rsa.github
    IdentitiesOnly yes # see NOTES below

මම දුරස්ථ git ගබඩාවක් එක් කරමි:

git remote add origin git@gitserv:myrepo.git

සාමාන්‍යයෙන් git විධාන මට වැඩ කරයි.

git push -v origin master

සටහන්

  • මෙම IdentitiesOnly yesකිරීමට අවශ්ය වේ ද SSH සැකසුම් හැසිරීම වළක්වා එක් එක් ප්රොටෝකෝලය සඳහා පෙරනිමි ගොනු හා ගැලපෙන වෙනස්වීම් අනන්යතාව ගොනු යැවීම. ඔබ සතුව නම් ~/.ssh/id_rsaකරන ලද ගොනුවක් තිබේ නම්, ~/.ssh/id_rsa.githubමෙම විකල්පය නොමැතිව ඔබට පෙර උත්සාහ කරනු ඇත .

යොමුව


18
.Sh / config භාවිතා කරමින් ඔබ යතුරු කිහිපයක් සඳහන් කළ විට, "git remote add" විධානයේ කොටසක් ලෙස "ධාරක" පේළියේ සත්කාරක මිතුරන්ගේ නම භාවිතා කළ යුතු බව මට පෙනී ගියේය. පේළිය "ධාරක stg" නම්, ඔබ gs දුරස්ථ එකතු කිරීම <someName> පරිශීලක @ stg: /path_to_git_repo.git "භාවිතා කළ යුතුය. ඔබ user@myserver.com: /path_to_git_repo.git වැනි නිශ්චිත සේවාදායක නාමයක් භාවිතා කරන්නේ නම්, වින්‍යාස ගොනුව GIT විසින් එය නිවැරදිව පෞද්ගලික යතුර ගොනුව තෝරා නොගැනීමයි, ඒ නිසා තෝරා නැත මම github කිරීමට එකම අන්තර්ගතය තල්ලු විසින් උත්සාහ කොට heroku සහ ඔබ "GIT දුරස්ථ එකතු" මිතුරු නම දෙන්න විට පමණක් ක්රියා කරයි..
Gopinath MR

2
ගිතුබ් සඳහා සත්කාරක සමාගම ගැන මට විශ්වාස නැත. මට මෙම සබැඳිය හමු විය: gist.github.com/jexchan/2351996 .
කාර්ස්ටන්

1
ඔබට git repositories කිහිපයක් සඳහා යතුරු ලිපිගොනු කිහිපයක් අවශ්‍ය නම් මෙහි බලන්න
e271p314

1
ඔබට Host remote.server.comමුල් URL භාවිතා කළ හැකිය
MauganRa

5
වෙනස්කම් දෙකකට පසුව මෙය මට වැඩ කළේය. වින්‍යාස ගොනුව අළුත් නම්, කිරීමට අමතක නොකරන්න chmod 600 ~/.ssh/config( මෙහි බලන්න ). ඔබ GitHub භාවිතා කරන්නේ නම්, ආදේශ Host gitservකරන්න Host github.com, අතහරින්න Hostname remote.server.com, සහ දුරස්ථව එක් කරන්න git remote add origin git@github.com:user_name/repo_name.git.
මිගෙල්මොරින්

512

Git 2.3.0 සිට අපට සරල විධානයක් ඇත (වින්‍යාස ගොනුවක් අවශ්‍ය නොවේ):

GIT_SSH_COMMAND='ssh -i private_key_file -o IdentitiesOnly=yes' git clone user@host:repo.git

-o IdentitiesOnly=yesඉහත පිළිතුරේ සඳහන් පරිදි එක් එක් ප්‍රොටෝකෝලය සඳහා පෙරනිමි ගොනු නාමයට ගැලපෙන හැඳුනුම් ගොනුව යැවීමේ SSH පෙරනිමි හැසිරීම වැළැක්වීමට අවශ්‍ය බව සලකන්න .


3
මම ලබා cannot run ssh -i /home/vagrant/.ssh/git: No such file or directoryඑය පවතින නමුත් 444 Nov 16 18:12 /home/vagrant/.ssh/gitසිටls -l /home/vagrant/.ssh/git
ටෙඩ්

3
@ted: chmod 400 /home/vagrant/.ssh/git
යෂ්

8
හොඳ සහ පහසු විසඳුමක්. ඔබට මෙය බොහෝ දේ කිරීමට අවශ්‍ය නම් අන්වර්ථයක් නිර්මාණය කිරීමට මම යෝජනා කරමි.
ලාස් මේයර්

5
අමතක කරන්න එපා chmod 400 <path-to-private-key-file>. එසේ නොමැතිනම් විශේෂ දෝෂ පණිවිඩයක් නොමැතිව git විධානය අසමත් විය හැකිය ...
eonil

5
-o IdentitiesOnly=yesනිශ්චිතව දක්වා ඇති යතුර -iභාවිතා වන බවට වග බලා ගැනීම සඳහා මෙම පිළිතුර ද ඇතුළත් කර තිබීම හොඳය (SSH නියෝජිතයාගේ යතුරකට වඩා වෙනස්ව).
රොබින්ස්ට්

425

වෙනත් පුද්ගලයින්ගේ යෝජනා ~/.ssh/configඅතිරේක සංකීර්ණ වේ. එය තරම් සරල විය හැකිය:

Host github.com
  IdentityFile ~/.ssh/github_rsa

31
ඔබටත් IdentitiesOnlyවිකල්පය අවශ්‍යයි .
Flimm

4
En එන්සෙචි දුරස්ථ හැසිරවීමෙන් ඔබට බහු ගිතබ් ගිණුම් තිබිය හැකිය : git remote add ssh://personal/org/proj.git && git remote add ssh://corporate/org/proj.git. එවිට ඔබ වින්‍යාසය පෙනේHost personal HostName github.com ... Host corporate HostName github.com
emory

N එන්සෙචි මම සමාන දෙයක් කරමි, එවිට මම විවිධ ssh යතුරු 2 ක් භාවිතා කරමි - එකක් ලබා ගැනීම සඳහා සහ අනෙක තල්ලු කිරීම සඳහා. ලබා ගැනීමට මුරපදයක් නොමැත. තල්ලු කරයි.
emory

146

My_git_ssh_wrapper හි අන්තර්ගතය:

#!/bin/bash

ssh -i /path/to/ssh/secret/key $1 $2

එවිට ඔබට යතුර භාවිතා කළ හැකිය:

GIT_SSH=my_git_ssh_wrapper git clone git@github.com:TheUser/TheProject.git

4
එකම වසමේ ඔබට එකකට වඩා ගිණුම් තිබේ නම් ඉතා හොඳ විසඳුමක් වන අතර වෙනත් විසඳුම් නිසි ලෙස හැසිරවිය නොහැක
Beka

1
හොඳ විසඳුමක්. ඔබට මෙය> GIT_SSH = my_git_ssh_wrapper සමඟ සරල කළ හැකිය; git clone git@github.com: TheUser / TheProject.git
ශිව

2
නිවාස නාමාවලියකින් තොරව ගිණුමෙන් git භාවිතා කිරීමට අවශ්‍ය අවස්ථාවන් මෙම විසඳුම මගින් ආවරණය කරයි.
piotrekkr

නියමයි. ඔබට පුද්ගලික සේවාදායකයන්ටද මෙය භාවිතා කළ හැකිය:GIT_SSH="git_wrapper" git clone ssh://user@server/path/to/project"
ටොන්


123

GIT 2.10+ සමග (Q3 2016: නිදහස් සැප් 2016 2D,), ඔබ නියම කිරීමට හැකියාව ඇති config සඳහා GIT_SSH_COMMAND(විස්තර කර ඇති පරිදි හුදෙක් පරිසර විචල්ය නොව Rober ජැක් විල් ගේ පිළිතුර )

Nguyễn Thái Ngọc Duy ( ) විසින් 3c8ede3 (26 ජුනි 2016) බලන්න . (විසින් අලුතින් ඒකාබද්ධ ජූනි සී Hamano - - දී dc21164 සිදු , 19 ජූලි 2016 වන විට)pclouds
gitster

එක් ගබඩාවකට භාවිතා core.sshCommandකළ යුතු වටිනාකම සඳහන් කිරීමට නව වින්‍යාස විචල්‍යයක් එක් කර ඇත GIT_SSH_COMMAND.

core.sshCommand:

මෙම විචල්ය සූදානම් නම්, git fetchහා git pushවෙනුවට නිශ්චිත විධානය භාවිතා කරනු ඇත sshඔවුන් දුරස්ථ පද්ධතියක් වෙත සම්බන්ධ වීමට අවශ්ය වන විට.
විධානය GIT_SSH_COMMANDපරිසර විචල්‍යයට සමාන ස්වරූපයෙන් පවතින අතර පරිසර විචල්‍යය සැකසූ විට එය අභිබවා යයි.

එහි අර්ථය විය git cloneහැක්කේ:

cd /path/to/my/repo
git config core.sshCommand 'ssh -i private_key_file' 
# later on
git clone host:repo.git

ඔබට එය එක් විධානයකට පමණක් සැකසිය හැකිය:

git -c core.sshCommand="ssh -i private_key_file" clone host:repo.git

GIT_SSH_COMMANDපරිසර විචල්‍යයක් සැකසීමට වඩා මෙය පහසු වන අතර, වින්ඩෝස් හි, මාටිස් කුටි-ක්‍රෙසැක්ස් විසින් සඳහන් කළ පරිදි,

set "GIT_SSH_COMMAND=ssh -i private_key_file"

LiFlimm මුදා හැරීමේ දිනයන්: കലන්ඩර්.ගොගල්.කොම් / කැලැන්ඩර්

එය නිකුත් කර ඇත.
Flimm

5
කටයුතු. ජනතාව මෙය හොඳම පිළිතුර ලෙස සැලකිය යුතුය. නිකුත් කළ පසු, .git / config ගොනුව කලින් / tmp වෙත පිටපත් කළ අනුවාදයක් සමඟ වෙනස් කිරීම තොරතුරු විය හැකිය. නව ප්‍රවේශයක් නිර්මාණය කර ඇත: sshCommand = ... එහි වටිනාකම සඳහා, මම 'git config core.sshCommand "ssh -i $ HOME / .ssh / privatekeyfile" භාවිතා කළෙමි.
දුර්වල පොයින්ටර්

2
PSpanky ඔබට git -c core.sshCommand="ssh -i private_key_file" clone host:repo.gitවින්‍යාස කට්ටලය අනුගමනය කරමින් පේළිගත කිරීමේ විධානය කළ හැකියgit config core.sshCommand 'ssh -i private_key_file'
dav_i

1
මෙය අනිවාර්යයෙන්ම හොඳම පිළිතුරයි!
වැග්නර් දේශප්‍රේමී

115

පිළිතුරු සහ අදහස් සාරාංශ කිරීම සඳහා, විවිධ යතුරු ලිපිගොනු භාවිතා කිරීම සඳහා git සැකසීමට හොඳම ක්‍රමය වන අතර පසුව එය අමතක කරන්න, එමඟින් එකම සත්කාරක සමාගම සඳහා විවිධ පරිශීලකයින්ට සහාය වේ (උදා: පුද්ගලික GitHub ගිණුමක් සහ වැඩ එකක්), එය වින්ඩෝස් හි ක්‍රියා කරයි සංස්කරණය කිරීම ~/.ssh/config(හෝ c:\Users\<your user>\.ssh\config) සහ බහු අනන්‍යතා නියම කිරීම ද වේ:

Host github.com
HostName github.com
IdentityFile /path/to/your/personal/github/private/key
User dandv

Host github-work
HostName github.com
IdentityFile /path/to/your/work/github/private/key
User workuser

ඉන්පසු, ඔබේ පුද්ගලික පරිශීලකයා ලෙස ව්‍යාපෘතියක් ක්ලෝන කිරීමට, නිතිපතා ධාවනය කරන්න git clone විධානය ක්‍රියාත්මක කරන්න.

Repo ලෙස ක්ලෝන කිරීමට workuser, ධාවනය කරන්න git clone git@github-work:company/project.git.


3
මම ඔබව පහත් කොට සලකන්නේ ඔබ පවසන සෑම දෙයක්ම දැනටමත් ඉහත පිළිතුරු වලින් සහ මගේ ඇස් හමුවේ ඊටත් වඩා පැහැදිලිව ආවරණය වී ඇති බැවිනි. උදාහරණයක් ලෙස, ඔබ පරිශීලකයා පිළිවෙලින් e dandv සහ workuser ලෙස අර්ථ දක්වන්නේ ඇයි?
hroptatyr

2
ඔබ අවුරුදු 4 ක් පැරණි ප්‍රශ්නයකට නව තොරතුරු නොමැතිව පිළිතුරු දුන් අතර ඔබ කියා සිටින්නේ ඔබේ පිළිතුර “හොඳම ක්‍රමය” බවයි. එපමණක් නොව, ඔබ අනෙක් පරිශීලකයින්ට ඔවුන්ගේ පිළිතුර ඉවත් කිරීමට පහත් කොට සැලකුවා ... ඔබේ පිළිතුර ඉහළට ඔසවා තැබීමට.
රුඩිමියර්

@hroptatyr: මම භාවිතා කළා dandvහා workuserමගේ උදාහරණයක් සඳහා සහය වීම සඳහා "උදා: පෞද්ගලික GitHub ගිණුමක් සහ වැඩ කටයුතු එක්".dandvමගේ GitHub පරිශීලක නාමයයි.
ඩෑන් ඩස්කල්ස්කු

12
මම හිතන්නේ එය am තම්ස්ටර්ට වඩා හොඳ පිළිතුරක් නම්, එය සත්කාරක අන්වර්ථයන් පැහැදිලි කරන නිසා පමණි.
ඩේවිඩ් මෝල්ස්

2
මම මේ පිළිතුරට කැමතියි. කෙසේ වෙතත්, මට මෙය ක්‍රියාත්මක වන්නේ මම IdentitiesOnly yesමගේ ssh වින්‍යාස ගොනුවට එකතු කළහොත් පමණි .
winni2k

76

මෙහි දක්වා ඇති පරිදි: https://superuser.com/a/912281/607049

ඔබට එය එක් එක් repo එකකට වින්‍යාසගත කළ හැකිය:

git config core.sshCommand "ssh -i ~/.ssh/id_rsa_example -F /dev/null"
git pull
git push

1
මොකද කරන්නේ -F /dev/null? මට පෙනෙන පරිදි මෙය වින්‍යාස ගොනුව ~/.ssh/configපෙරනිමියෙන් වෙනස් කරයි නමුත් එය අවශ්‍ය වන්නේ ඇයි? සෑන්ඩ්බොක්ස් කළ විධානයක් සහතික කිරීම සඳහා?
ඩොමිනික්

3
linuxcommand.org/man_pages/ssh1.html , වින්‍යාස ගොනුවක් නියම නොකරයි, එබැවින් git ssh ක්‍රියාත්මක වන විට කිසිදු වින්‍යාස ගොනුවක් සම්මත නොවනු ඇත (ඇත්ත වශයෙන්ම එය සැන්ඩ්බොක්ස් මාදිලියකි, පරිශීලක වින්‍යාස පෙරනිමි විකල්ප නොසලකා හරින්න) සුපර් යූසර් හි මුල් නූල් ඇත -F පිළිබඳ වැඩි විස්තර
ඩේවිඩ්

1
මම සොයන කෙනා. ස්තූතියි!
lostcitizen

කුබර් පරිසරයේ වැඩ කිරීම සඳහා AAAAA + විසඳුම. ස්තූතියි!
කෝබ්රා එදිරිව නින්ජා

1
හායි ඔබ මෙය උප මොඩියුලයකට ප්‍රචාරය කරන්නේ කෙසේදැයි දන්නවාද?
අර්කා ප්‍රවා බාසු

46

ගැටළුව වන්නේ ඔබට එකම ධාරකයේ විවිධ දුරස්ථ ගබඩාවන් ඇති විට (github.com කියන්න), ඔබට විවිධ ssh යතුරු භාවිතා කර ඒවා සමඟ අන්තර් ක්‍රියා කිරීමට අවශ්‍යය. (එනම් විවිධ GitHub ගිණුම්) .

එය සිදු කිරීම සඳහා:

  1. පළමුව ඔබ ඔබේ විවිධ යතුරු ~/.ssh/configගොනුවේ ප්‍රකාශ කළ යුතුය .

    # Key for usual repositories on github.com
    Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa
    
    # Key for a particular repository on github.com
    Host XXX
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_other_rsa

    මෙය කිරීමෙන් ඔබ දෙවන යතුර github.com සඳහා නව මිත්‍ර නාමයක් වන “XXX” සමඟ සම්බන්ධ කරයි.

  2. එවිට ඔබ ඔබේ විශේෂිත ගබඩාවේ දුරස්ථ සම්භවය වෙනස් කළ යුතුය, එවිට එය ඔබ විසින් නිර්වචනය කර ඇති මිත්‍රශීලී නම භාවිතා කරයි.

    විධාන විමසුමක් තුළ ඔබේ දේශීය නිධිය ෆෝල්ඩරයට ගොස් වත්මන් දුරස්ථ සම්භවය පෙන්වන්න:

    >git remote -v
    origin  git@github.com:myuser/myrepo.git (fetch)
    origin  git@github.com:myuser/myrepo.git (push)

    ඉන්පසු සම්භවය වෙනස් කරන්න:

    >git remote set-url origin git@XXX:myuser/myrepo.git
    >git remote -v
    origin  git@XXX:myuser/myrepo.git (fetch)
    origin  git@XXX:myuser/myrepo.git (push)

    දැන් ඔබට නිවැරදි යතුර සමඟ ස්වයංක්‍රීයව තල්ලු කළ හැකිය.


1
මෙය මගේ මනසෙහි ඇති වඩාත්ම “නිවැරදි” පිළිතුරයි, එහිදී ඔබ ඔබේ ssh වින්‍යාස ගොනුවේ සම්බන්ධතා සහ යතුරු සංවිධානය කරන්නේ හොඳම පුහුණුව සහ දිගු කාලීනව සහාය විය හැකි ය.
jamescampbell

වෙනත් විසඳුම් ක්‍රියාමාර්ග ලෙස පෙනේ, මෙය මෙවලම සහාය දක්වන විශිෂ්ට අංගයක් භාවිතා කරයි.
ක්‍රේග් සී

38

එවැනි සත්කාරක හෝ අයිපී .ssh/configගොනුවට එක් කිරීමට වඩා හොඳ අදහස :

Host (a space separated list of made up aliases you want to use for the host)
    User git
    Hostname (ip or hostname of git server)
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_(the key you want for this repo)

1
එය ප්‍රයෝජනවත්, නමුත් එම සත්කාරක නාමය සමඟ ඇති සියලුම අන්තර්ක්‍රියා සඳහා repo යතුර භාවිතා කිරීමට ඔබව පොළඹවයි. එකම සේවාදායකයේ විවිධ යතුරු අවශ්‍ය වෙනත් ගබඩාවන් තිබේ නම්, එතීම භාවිතා කිරීම සහ GIT_SSH සමඟ එය භාවිතා කිරීමට git ට පැවසීම වඩා හොඳය.
ජෝ බ්ලොක්

11
එය අනිවාර්යයෙන්ම සත්‍ය නොවේ. මම ගිතුබ් සඳහා යතුරු කිහිපයක් භාවිතා කරමි - එකක් වැඩ සඳහා සහ මගේ පුද්ගලික ගිණුම සඳහා. "සත්කාරක" සඳහා ඔබට ඩොමේන් නාමයක් තැබිය යුතු නැත. ඔබට අවශ්‍ය ඕනෑම අන්වර්ථ නාමයක් තැබිය හැකිය. උදාහරණයක් ලෙස, මම gh-home සහ gh-work මගේ සත්කාරක නාම ලෙස භාවිතා කරන අතර මම ක්ලෝන කරන විට, උදාහරණයක් ලෙස, git clone git@gh-work:repo/project.git මගේ ~ / .ssh / config හි මට කොටස් දෙකක් තිබේ, ඒ දෙකම සත්කාරක නාමය සඳහා github.com භාවිතා කරයි. ඔවුන් සතුව ඇත්තේ වෙනස් හැඳුනුම්පත් සහ සත්කාරක
බ්ලොක්ලූප්

strategy brettof86 මෙම උපාය බොහෝ දුරට ක්‍රියාත්මක වේ, නමුත් ඔබ පරීක්ෂා කරන නිධියක් මැණික් මත රඳා පවතින විට ඔබ කරන්නේ කුමක්ද? Gemfile හි github repo හි සඳහනෙහි ඔබේ "අන්වර්ථය" අඩංගු නොවේ, ව්‍යාපෘතියේ වෙනත් සංවර්ධකයින් සඳහා දේවල් බිඳ දැමීමට ඔබට අවශ්‍ය නම් මිස ...
ktec

@ brettof86 මට වෙනස් ගිතුබ් ගිණුම් දෙකක් (වැඩ, නිවස) ඇත, නමුත් මට වැඩ කිරීමට ආදර්ශය ලබා ගත නොහැක. දෙකක් ඇති නියැදියක් ඔබට පළ කළ හැකිද?
Climbs_lika_Spyder

@Climbs_lika_Spyder මෙන්න මගේ ~/.ssh/config pastebin.com/8rYn7yCi
blockloop

38
GIT_SSH_COMMAND="ssh -i /path/to/git-private-access-key" git clone $git_repo

හෝ

export GIT_SSH_COMMAND="ssh -i /path/to/git-private-access-key"
git clone REPO
git push

32

මම ගියේ GIT_SSH පරිසර විචල්‍යය සමඟයි. මෙන්න මගේ එතුම, ඉහළින් ජෝ බ්ලොක්ට සමාන නමුත් ඕනෑම තර්ක ප්‍රමාණයක් හසුරුවයි.

ගොනුව ~ / gitwrap.sh

#!/bin/bash
ssh -i ~/.ssh/gitkey_rsa "$@"

ඉන්පසු, මගේ .bashrc හි පහත සඳහන් දෑ එකතු කරන්න:

export GIT_SSH=~/gitwrap.sh

මම මෙය .bashrc මත සකසා ඇත. නමුත් මම විවෘත මාර්‍ගයට පිවිසෙන විට, එය එය අමතන බවක් නොපෙනේ. මට යමක් මග හැරී තිබේද?
ජිගර් ෂා

එය මට දෝෂයක් සමඟ අසමත් වේ .. එහි ස්ක්‍රිප්ට් සිදුවීම සොයාගත නොහැකි විය .. සිදුවන්නේ කුමක් දැයි විශ්වාස නැත ... දෝෂය: ධාවනය කළ නොහැක /tmp/gitwrap.sh: එවැනි ගොනුවක් හෝ නාමාවලියක් නොමැත
ap1234

ඔබ "එවැනි ගොනුවක් හෝ නාමාවලියක් නොමැති" දෝෂයකට මුහුණ දෙන්නේ නම්, සම්පූර්ණ මාර්ගය තබන්න gitwrap.sh, උදාහරණයක් ලෙස/home/ubuntu/gitwrap.sh
තාහීර් අක්තාර්

ඔබට -o StrictHostKeyChecking=nossh විධානයට එක් කිරීමට අවශ්‍ය විය හැකිය
dan-man

14

මෙහි ඇති වෙනත් විසඳුම් කිසිවක් ඔබ වෙනුවෙන් ක්‍රියා නොකරන්නේ නම් සහ ඔබ බහු ssh යතුරු නිර්මාණය කර ඇතත් තවමත් සරල දේවල් කළ නොහැක

git pull

ඔබ වැනි ssh යතුරු ගොනු දෙකක් ඇතැයි උපකල්පනය කරන්න

id_rsa
id_rsa_other_key

git repo ඇතුලත, උත්සාහ කරන්න:

# Run these commands INSIDE your git directory
eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_other_key

තවද ඔබගේ ගිතුබ් පෙරනිමි පරිශීලක නාමය සහ පරිශීලක නාමය නිවැරදි බව තහවුරු කරගන්න:

# Run these commands INSIDE your git directory
git config user.name "Mona Lisa"
git config user.email "mona.lisa@email.com"

වැඩි විස්තර සඳහා https://gist.github.com/jexchan/2351996 බලන්න .


ඔබ ලබා ගන්නේ නම් Could not open a connection to your authentication agent., උත්සාහ $ eval `ssh-agent -s`කර නැවත උත්සාහ කරන්න.
cgnorthcutt

1
නැතිවූ අය සඳහා, ssh-addවිධාන උපක්‍රමය මා වෙනුවෙන් වැඩ කළේය. Ssh සත්‍යාපනය කරන විට උත්සාහ කළ අයගේ ලැයිස්තුවට අනන්‍යතා යතුර එක් කරන්න. මෙය මට හොඳින් වැඩ කළා!
බෙන් කාට් රයිට්

ඔබ ධාවනය ssh-addකරන්නේ කුමන නාමාවලියෙහිද යන්න වැදගත් යැයි ඔබ සිතන්නේ ඇයි ?
ත්‍රිත්ව

En බෙන් කාට් රයිට් ඔබ වෙනස් කරන්නේ දේශීය සැකසුම් මිස ගෝලීය සැකසුම් නොවේ. මෙම ප්‍රවේශය .gitගෝලීයව git වැඩසටහන නොව repo තුළ වෙනස් වේ. --globalගෝලීය පරිශීලක නාමය සහ විද්‍යුත් තැපෑල සැකසීමට ඔබට භාවිතා කළ හැකිය .
cgnorthcutt

11

ඔබ සාමාන්ය ඉල්ලීම (සමග github වෙත සම්බන්ධ වීමට අවශ්ය වූ විට git pull origin master), ලෙස සත්කාරක සැකසීම *දී ~/.ssh/configමට වැඩ, වෙනත් ඕනෑම සත්කාරක (කිව්වොත්, "github" හෝ "gb") වැඩ කළේ නැහැ.

Host *
    User git
    Hostname github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_xxx

එවිට මුළු "ධාරක *" රේඛාවම ඉවත් කළ හැකිය.
lionello

1
එය ඔබගේ දුරස්ථ URL සමඟ නොගැලපෙන නිසා එය ක්‍රියා නොකරනු ඇත. ඔබට භාවිතා කිරීමට අවශ්‍ය නම් Host my-host-alias, ඔබ සැකසිය remote.origin.url=git@my-host-alias:[username]/[repo].gitයුතුය.
ඩේවිඩ් මෝල්ස්

11

මෙම විසඳුම් බොහොමයක් සිත් ඇදගන්නා සුළු විය. කෙසේ වෙතත්, පහත දැක්වෙන සබැඳියෙන් සාමාන්‍ය git-wrapping-script ප්‍රවේශය වඩාත් ප්‍රයෝජනවත් බව මට පෙනී ගියේය:

gitවිධානය සමඟ ssh යතුරු ගොනුවක් නියම කරන්නේ කෙසේද

කාරණය වන්නේ gitපහත දැක්වෙන විධානයන් නොමැති වීමයි :

git -i ~/.ssh/thatuserkey.pem clone thatuser@myserver.com:/git/repo.git

ඇල්වින්ගේ විසඳුම නම් මෙම පරතරය පුරවන මනාව නිර්වචනය කරන ලද බාෂ්-එතීමේ පිටපතක් භාවිතා කිරීමයි:

git.sh -i ~/.ssh/thatuserkey.pem clone thatuser@myserver.com:/git/repo.git

කොහෙද git.sh:

#!/bin/bash

# The MIT License (MIT)
# Copyright (c) 2013 Alvin Abad
# https://alvinabad.wordpress.com/2013/03/23/how-to-specify-an-ssh-key-file-with-the-git-command

if [ $# -eq 0 ]; then
    echo "Git wrapper script that can specify an ssh-key file
Usage:
    git.sh -i ssh-key-file git-command
    "
    exit 1
fi

# remove temporary file on exit
trap 'rm -f /tmp/.git_ssh.$$' 0

if [ "$1" = "-i" ]; then
    SSH_KEY=$2; shift; shift
    echo "ssh -i $SSH_KEY \$@" > /tmp/.git_ssh.$$
    chmod +x /tmp/.git_ssh.$$
    export GIT_SSH=/tmp/.git_ssh.$$
fi

# in case the git command is repeated
[ "$1" = "git" ] && shift

# Run the git command
git "$@"

මම මේ මම, දුෂ්කර bitbucket ණයකට පරිශීලක / ප්රධාන පිළිගැනීමක් සහිත විය ගැටළුව විසඳන බව තහවුරු කළ හැකි git remote update, git pullසහ git clone, මේ සියල්ලම දැන් cronරැකියා පිටපතක හොඳින් ක්‍රියාත්මක වන අතර වෙනත් ආකාරයකින් සීමිත කවචයේ සැරිසැරීමට අපහසු විය. R තුළ සිටම මෙම ස්ක්‍රිප්ට් එක ඇමතීමට මට හැකි වූ අතර තවමත් cronක්‍රියාත්මක කිරීමේ ගැටලුව නිරාකරණය කර ගැනීමට මට හැකි විය (උදා system("bash git.sh -i ~/.ssh/thatuserkey.pem pull")).

R යනු රූබිට සමාන බව නොවේ, නමුත් R ට එය කළ හැකි නම් ... O :-)


1
විශිෂ්ටයි වගේ! මම මෙය පරීක්ෂා කර නැවත පිළිතුරු දෙන්නෙමි.
බ්ලූබර්ඩ්

3
මීට අමතරව පහත දැක්වෙන syntax සිට, කෙසේ ද මේ වඩා යහපත් වන්නේ GIT_SSH_COMMAND="ssh -i ~/.ssh/thatuserkey.pem" git clone clone thatuser@myserver.com:/git/repo.gitඅනුව රොබට් ජැක් කැමැත්ත පිළිතුර ?
ඩේවිඩ් මෝල්ස්

6

ඔබට ලබා දී ඇති හඳුනාගැනීමේ ගොනුවක් සමඟ අත්සන් කිරීමට අවශ්‍ය ස්ථානයේ ඔබට ඩිරෙක්ටරියක් තිබේ නම් .ssh / config ගොනුව හරහා නිශ්චිත හඳුනාගැනීමේ ගොනුවක් භාවිතා කිරීමට ඔබට නියම කළ හැකිය ControlPath.

host github.com
  ControlPath ~/Projects/work/**
  HostName github.com
  IdentityFile ~/.ssh/id_work
  User git

එවිට sshදී ඇති වැඩ මාර්ගය යටතේ GIT විධාන කරන්නේ විට නිශ්චිත අනන්යතාවය ගොනුව භාවිතා කරනු ඇත.


ඔබ ද ගුණ සකස් කළ හැකි බව පසුව ControlMaster autoහා ControlPersist yesඔබ සෑම අවස්ථාවකදීම මුරපදය භාවිතනාමය කිරීමට අවශ්ය නොවන නිසා බව. මෙම ලිපියේ
ක්‍රිස්ටෝබල්


5

හොඳ පිළිතුරු ගොඩක්, නමුත් ඔවුන්ගෙන් සමහරක් පූර්ව පරිපාලන දැනුම උපකල්පනය කරති.

මම එය ඉතා පැහැදිලිවම අවධාරණය කිරීමට වැදගත් වේ හිතන්නේ ඔබට වෙබ් URL එක උත්සහය ඔබගේ ව්යාපෘතිය ආරම්භ නම් - https://github.com/<user-name>/<project-name>.git
එවිට ඔබට අවශ්ය වග බව බවට වන url අගය යටතේ [remote "origin"]තුළ .git/config ඇති SSH URL එක වෙනස් කරන ලදී (කේතය වාරණ පහත බලන්න).

ඊට අමතරව sshCommmandපහත සඳහන් පරිදි එකතු කිරීමට වග බලා ගන්න :

user@workstation:~/workspace/project-name/.git$ cat config
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    sshCommand = ssh -i ~/location-of/.ssh/private_key -F /dev/null <--Check that this command exist
[remote "origin"]
    url = git@github.com:<user-name>/<project-name>.git  <-- Make sure its the SSH URL and not the WEB URL
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

ඒ ගැන වැඩි විස්තර මෙතැනින් කියවන්න .


1
ගොඩාක් ස්තූතියි, git ssh යතුර භාවිතා නොකරන්නේ ඇයිදැයි සොයා බැලීමට බොහෝ කාලයක් ගත කළා. ගිතුබ් විසින් ක්ලෝන බොත්තමෙන් පෙරනිමියෙන් https url ලබා දෙන්නේ මන්දැයි මට තේරෙන්නේ නැත.
චක්‍රදාර් රාජු

1
Answer න පිළිතුර, පද්ධති පුළුල් වින්‍යාසය වෙනුවට ව්‍යාපෘති මට්ටමේ වින්‍යාසය සඳහා තොරතුරු සපයයි. ඔබ පද්ධති පුළුල් වින්‍යාසයක් නොමැති නම් පමණක් ඔබ මූලිකවම මෙම ගැටලුවට මුහුණ දෙන බව වෙනත් පිළිතුරු නොසලකා හරින බවක් පෙනේ!
මැල්කම්

3

පහත පරිදි ඔබට ~ / .ssh / config නිර්මාණය කළ යුතුය

Host <Your bitbucket server>
User <userid>
Hostname <Your bitbucket server as above>
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa<file> This is your private key file

පහත පරිදි අවසරය

-rw------- $HOME/.ssh/config

ඔබගේ පොදු යතුර ඔබගේ git එකට එක් කරන්න (cat ~ / .ssh / id_rsa_pub [හෝ සමාන නම])

ඉන්පසු පහත පරිදි git clone කරන්න

git clone ssh://blahblah@blah.com/userid/test.git

2

වින්ඩෝස් හි Git Bash සමඟ නිධියක් එක් කිරීමට ඔබට පහත සඳහන් දෑ භාවිතා කළ හැකිය ssh-agent bash -c 'ssh-add "key-address"; git remote add origin "rep-address"' : ssh-agent bash -c 'ssh-add /d/test/PrivateKey.ppk; git remote add origin git@git.test.com:test/test.git'ඩ්‍රයිව් ඩී හි ඇති පුද්ගලික යතුර කුමක්ද, පරිගණකයේ ෆෝල්ඩර පරීක්ෂණය. එසේම ඔබ නිධිය පරිගණක ක්රිඩාවට සමාන කිරීමට අවශ්ය නම්, ඔබ වෙනස් කළ හැකිය git remote add originසමගgit clone .

මෙය Git Bash වෙත ඇතුළත් කිරීමෙන් පසුව, එය ඔබෙන් මුරපදය ඉල්ලනු ඇත!

පුද්ගලික යතුර විවෘත කිරීම සහ පුද්ගලික යතුර ඩයිෆරන්ට් බව දැන සිටින්න!

ඔබ ඔබේ යතුරු puttygen සමඟ නිර්මාණය කර ඇත්නම්, ඔබ ඔබේ පුද්ගලික යතුර opensh වෙත පරිවර්තනය කළ යුතුය!


2

මෙම ක්‍රමයේ ඇති ගැටළුව නම්, අවම වශයෙන් වින්ඩෝස් හි bash.exe මඟින් ක්‍රියාත්මක වන විට, එය අක්‍රියව පවතින සෑම අවස්ථාවකම නව ක්‍රියාවලියක් නිර්මාණය කරනු ඇත.

ssh-agent bash -c 'ssh-add /somewhere/yourkey; git clone git@github.com:user/project.git'

කාලසටහනට අනුව සමමුහුර්ත කිරීම සඳහා ඔබට එය භාවිතා කිරීමට අවශ්‍ය නම් අවසානයේ ඔබ "&& ssh-agent -k" එකතු කළ යුතුය.

වැනි දෙයක්:

ssh-agent bash -c 'ssh-add C:/Users/user/.ssh/your_key; git -C "C:\Path\to\your\repo" pull && ssh-agent -k' 

ssh-agent -k ක්‍රියාවලිය අවසන් වූ විට එය විනාශ කරයි.


1

ඔබට GIT_SSH පරිසර විචල්‍යය භාවිතා කළ හැකිය. නමුත් ඔබට ssh සහ විකල්ප ෂෙල් ස්ක්‍රිප්ටයකට ඔතා තැබීමට අවශ්‍ය වනු ඇත.

man gitඔබගේ විධාන කවචයේ git manual බලන්න .


1

මම භාවිතා කරන zshඅතර විවිධ යතුරු ssh-agentමගේ ලැප්ටොප් පරිගණකයේ වෙනත් අරමුණු සඳහා (එනම් දුරස්ථ සේවාදායකයන්ට ප්‍රවේශ වීම) ස්වයංක්‍රීයව මගේ zsh කවචයට පටවනු ලැබේ . මම වෙනස් කළෙමි @ නික්ගේ පිළිතුර සහ මම එය නිතරම නැවුම් කළ යුතු මගේ ගබඩාවක් සඳහා භාවිතා කරමි. (මේ අවස්ථාවේ දී dotfiles, මා වැඩ කරන ඕනෑම තැනක මගේ සියලු යන්ත්‍ර හරහා එකම හා නවතම අනුවාදය අවශ්‍ය වන්නේ එයයි.)

bash -c 'eval `ssh-agent`; ssh-add /home/myname/.dotfiles/gitread; ssh-add -L; cd /home/myname/.dotfiles && git pull; kill $SSH_AGENT_PID'
  • Ssh- නියෝජිතයෙකු බිහි කරන්න
  • නියෝජිතයාට කියවීමට පමණක් යතුර එක් කරන්න
  • නාමාවලිය මගේ git repo වෙත වෙනස් කරන්න
  • නම් cd ණයකට හිස් තීරුවෙහි සාර්ථක වන අතර, දුරස්ථ ණයකට සිට අදින්න
  • බිහි වූ ssh-agent මරා දමන්න. (මට බොහෝ නියෝජිතයින් රැඳී සිටීමට අවශ්‍ය නොවනු ඇත.)

1

සඳහා gitlab RSAAuthentication yes

Host gitlab.com
  RSAAuthentication yes
  IdentityFile ~/.ssh/your_private_key_name
  IdentitiesOnly yes

doc මෙහි ඇත


ඔබ තවදුරටත් සපයා ඇති සබැඳියේ සඳහන් බවක් නොපෙනේ
rbennell

1

වින්ඩෝස් යටතේ GIT_SSH_COMMAND පරිසර විචල්‍ය වැඩ කිරීම වෙනුවට:

set GIT_SSH_COMMAND="ssh -i private_key_file"

භාවිත:

set "GIT_SSH_COMMAND=ssh -i private_key_file"

උපුටා දැක්වීම සමාන විය යුතුය

set "variable=value" 

සමහර පසුගාමී: https://stackoverflow.com/a/34402887/10671021


0

SSH තොට අංකය 22 (පෙරනිමි) නොවේ නම්, එකතු කරන්න Port xxදී~/.ssh/config

මගේ නඩුවේ (සම විද්‍යාව),

Host my_synology
    Hostname xxxx.synology.me
    IdentityFile ~/.ssh/id_rsa_xxxx
    User myname
    Port xx

වින්‍යාසය තුළ ධාරක මාතෘකාව භාවිතා කර ක්ලෝන කරන්න. ("my_synology". @ චොප්ස්ටික්ගේ "*" වළක්වා ගැනීමට)

git clone my_synology:path/to/repo.git

0

ඔබ මට කැමති නම්, ඔබට පුළුවන්:

  • ඔබගේ ssh යතුරු සංවිධානාත්මකව තබා ගන්න

  • ඔබගේ git clone විධානයන් සරල ලෙස තබා ගන්න

  • ඕනෑම ගබඩාවක් සඳහා යතුරු ගණනක් හසුරුවන්න.

  • ඔබේ ssh යතුරු නඩත්තුව අඩු කරන්න.

මම මගේ යතුරු මගේ ~/.ssh/keysනාමාවලියෙහි තබා ගන්නෙමි .

වින්‍යාසයට වඩා සම්මුතියට මම කැමතියි.

මම හිතන්නේ කේතය නීතියයි; එය සරල වන තරමට වඩා හොඳය.

පියවර 1 - අන්වර්ථය සාදන්න

මෙම අන්වර්ථය ඔබේ කවචයට එක් කරන්න: alias git-clone='GIT_SSH=ssh_wrapper git clone'

පියවර 2 - ස්ක්‍රිප්ට් සාදන්න

මෙම ssh_wrapper ස්ක්‍රිප්ට් ඔබගේ PATH වෙත එක් කරන්න:

#!/bin/bash
# Filename: ssh_wrapper

if [ -z ${SSH_KEY} ]; then
    SSH_KEY='github.com/l3x'  # <= Default key
fi
SSH_KEY="~/.ssh/keys/${SSH_KEY}/id_rsa"
ssh -i "${SSH_KEY}" "$@"

උදාහරණ

Github.com/l3x යතුර භාවිතා කරන්න:

KEY=github.com/l3x git-clone https://github.com/l3x/learn-fp-go

පහත උදාහරණය github.com/l3x යතුර ද භාවිතා කරයි (පෙරනිමියෙන්):

git-clone https://github.com/l3x/learn-fp-go

Bitbucket.org/lsheehan යතුර භාවිතා කරන්න:

KEY=bitbucket.org/lsheehan git-clone git@bitbucket.org:dave_andersen/exchange.git

සටහන්

Ssh_wrapper ස්ක්‍රිප්ටයේ පෙරනිමි SSH_KEY ඔබ බොහෝ විට භාවිතා කරන දෙයට වෙනස් කරන්න. ඒ ආකාරයෙන්, ඔබ බොහෝ විට KEY විචල්‍යය භාවිතා කිරීමට අවශ්‍ය නොවේ.

"හේයි! එය අන්වර්ථයක්, පිටපතක් සහ යතුරු නාමාවලියක් සමඟ බොහෝ දේ සිදුවෙමින් පවතී" යැයි ඔබ සිතනු ඇත, නමුත් මට එය සම්මුතියකි. මගේ වැඩපොළවල් සියල්ලම පාහේ (සහ ඒ සඳහා සේවාදායකයන්) ඒ හා සමානව වින්‍යාස කර ඇත.

මෙහි මගේ ඉලක්කය වන්නේ මම නිතිපතා ක්‍රියාත්මක කරන විධානයන් සරල කිරීමයි.

මගේ සම්මුතීන්, උදා: බෑෂ් ස්ක්‍රිප්ට්, අන්වර්ථ නාම යනාදිය ස්ථාවර පරිසරයක් නිර්මාණය කරන අතර දේවල් සරල ලෙස තබා ගැනීමට මට උපකාරී වේ.

KISS සහ නම් වැදගත් වේ.

තවත් සැලසුම් ඉඟි සඳහා මගේ පොතෙන් 4 වන පරිච්ඡේදය SOLID නිර්මාණ බලන්න : https://www.amazon.com/Learning-Functional-Programming-Lex-Sheehan-ebook/dp/B0725B8MYW

උපකාරවත් වන බලාපොරොත්තුව. - ලෙක්ස්


-1

මෙම ගැටලුවට විසඳුමක් සෙවීමේදී මා සොයාගත් ssh යතුරු හැක් මෙන්න:

උදාහරණයක් ලෙස ඔබට විවිධ යතුරු කට්ටල 2 ක් ඇත:

key1, key1.pub, key2, key2.pub

මෙම යතුරු ඔබේ .sshනාමාවලියෙහි තබා ගන්න

දැන් ඔබේ .bashrcහෝ .bash_profileඅන්වර්ථ ගොනුවේ මෙම විධාන එක් කරන්න

alias key1='cp ~/.ssh/key1 id_rsa && cp ~/.ssh/key1.pub id_rsa.pub'

alias key2='cp ~/.ssh/key2 id_rsa && cp ~/.ssh/key2.pub id_rsa.pub'

වොයිලා! ඔබට අවශ්‍ය විටෙක යතුරු මාරු කිරීමට ඔබට කෙටිමඟක් තිබේ!

මෙය ඔබ වෙනුවෙන් ක්‍රියාත්මක වේ යැයි සිතමි.


කරුණාකර මෙම යතුරු git භාවිතයෙන් භාවිතා කරන්නේ කෙසේද යන්න පිළිබඳ තොරතුරු එක් කරන්න
Sergey Nemchinov

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.