æ°ããPCãæã«å
¥ãããšããéçºç°å¢ã®ã»ããã¢ããã¯äžéãçµãã£ãâŠ
ãšæããããGitHubãžã®SSHæ¥ç¶èšå®ãå¿ããŠããïŒ
ãããªçµéšããããŸãããïŒ
ãããããã€ãŠåºã䜿ãããŠããRSAæ¹åŒã¯ãçŸä»£ã®åºæºã§ã¯ãè匱ããšè©äŸ¡ããã€ã€ãããããå®å šãªæ¹åŒãžã®ç§»è¡ãæšå¥šãããŠããŸãã
ãã®èšäºã§ã¯ãææ°ã®å®å šãªæ¹åŒã§ããed25519ã䜿ããGitHubãžã®SSHæ¥ç¶ãäžããã»ããã¢ããããæ¹æ³ãã解説ããŸãã
ãªãRSAã§ã¯ãªãed25519ãªã®ãïŒ
ãã€ãŠã¯RSAïŒç¹ã«2048ãããïŒãæšæºã§ããããæ¬¡ã®çç±ã«ããä»ã¯ed25519ãæšå¥šãããŠããŸãã
- ã»ãã¥ãªãã£ïŒRSA-2048ã¯å°æ¥çã«å®å šæ§ã«äžå®ãããed25519ã¯2^128ãããçŽã®ã»ãã¥ãªãã£ãæã¡ãéåã³ã³ãã¥ãŒã¿ãžã®èæ§ãé«ãã
- é床ïŒçœ²åçæã»æ€èšŒãRSAããæ°åé«éã
- éµãµã€ãºãå°ããïŒå ¬ééµã»ç§å¯éµã®ãµã€ãºãã³ã³ãã¯ãïŒ32ãã€ã/64ãã€ãïŒã
- èå¯ãã£ãã«æ»æïŒã¿ã€ãã³ã°æ»æããã£ãã·ã¥æ»æã«ãèšè𿮵éããé æ ®ãããŠããã
ã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ã劥åããªããªããä»ã¯ed25519äžæãããïŒ
ã»ããã¢ããæé ïŒmacOSïŒ
macOSãåæã«è©±ãé²ããããŠãã ããð
gitèªäœã®ã€ã³ã¹ããŒã«ã«é¢ããŠã¯ä»¥äžãåèã«è¡ã£ãŠãã ããã
ãmacOSçãHomebrewã䜿ã£ãŠgitãã€ã³ã¹ããŒã«
https://qiita.com/inakuuun/items/57fd4162d17d72e0c4fa
1. ed25519éµãçæãã
ãŸããSSHããŒãçæããŸããïŒããã§ -t rsa
ã䜿ããªããïŒ
ssh-keygen -t ed25519 -C "your_email@example.com"
-
-t ed25519
ïŒéµæ¹åŒãæç€ºçã«æå®ã -
-C "ã³ã¡ã³ã"
ïŒåŸã§ç®¡çããããããã«ã¡ãŒã«ã¢ãã¬ã¹ãªã©ãèšå®ã
å®è¡ãããšã以äžãèãããŸãïŒ
Enter file in which to save the key (/Users/you/.ssh/id_ed25519): [Enter]
Enter passphrase (empty for no passphrase): ********
Enter same passphrase again: ********
ãã¹ãã¬ãŒãºã¯ç©ºã§ãããã§ãããã»ãã¥ãªãã£åäžã®ããæšå¥šãããŠã¯ããããã§ãã
2. å ¬ééµãGitHubã«ç»é²ãã
å ¬ééµã®äžèº«ã確èªããŠã³ããŒããŸãã
cat ~/.ssh/id_ed25519.pub
GitHubã«ãã°ã€ã³ãã
Settings > SSH and GPG keys > New SSH key
ããå
¬ééµãç»é²ããŸãããã
3. ~/.ssh/config
ãæŽãã
è€æ°ã®éµã䜿ãåããããããŒãã§ãŒã³ã«ä¿åããŠå¿«é©éçšãããããSSHèšå®ãã¡ã€ã«ãç·šéããŸãã
vi ~/.ssh/config
以äžã®ãããªãã®ã远èšïŒ
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
AddKeysToAgent yes
UseKeychain yes
è£è¶³ïŒ
ããã§èšå®ããHost
åã¯èªç±ã«èšå®å¯èœã§ããããšãã°ãè€æ°ã®GitHubã¢ã«ãŠã³ãã䜿ãåããå Žåã¯github-work
ãgithub-personal
ã®ããã«åããããšã§ãããããéãéµã䜿ãããšãã§ããŸãã
åè
4. ssh-agentã«ç»é²ããŠããïŒååã ãïŒ
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
ããã§ããã¹ãã¬ãŒãºå
¥åã¯1åã ãã§æžã¿ãŸãã
次å以éã¯ããŒãã§ãŒã³ããèªåã§ååŸãããŸãã
5. åäœç¢ºèª
ssh -T git@github.com
æåãããšïŒ
Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.
ããã§ã»ããã¢ããã¯å®äºã§ãïŒ
ãŸãšã
é ç® | å 容 |
---|---|
䜿çšãã鵿¹åŒ | ed25519 |
ã»ãã¥ãªã㣠| 2^128ãããçŽãRSA-2048ããé«ã |
ããã©ãŒãã³ã¹ | é«éãªçœ²åã»æ€èšŒã軜éãªéµãµã€ãº |
éçš | ããŒãã§ãŒã³ç»é²ã§ãã¹ãã¬ãŒãºãã¹ããŒãã« |
ããšãã
ä»ããªããRSAã§éµãäœã£ãŠããèšäºãèšå®äŸããããã«ã¯å€ãæ®ã£ãŠããŸãã
ç§èªèº«ãã»ãã¥ãªãã£é¢é£ã«è©³ããããã§ã¯ãªãã®ã§ãããè¿ããååšã«ç²Ÿéããæ¹ãããã
ã仿RSAã¯ã»ãã¥ãªãã£çã«ïŒïŒïŒïŒïŒïŒããšèšãããæèããããã«ãªããŸããã
ä»åãã®èšäºãã»ãã¥ãªãã£é¢ã ãã§ãªããPCãå€ããæã®gitã»ããã¢ããã®æã®ãªãã¡ã¬ã³ã¹ãšããŠæŽ»çšããŠããã ããããªãšæããŸãïŒ
ð é¢é£ãªã³ã¯ã»åèè³æ
- GitHubå ¬åŒïŒSSHããŒã®èšå®
- OpenSSHå ¬åŒïŒed25519ã«ã€ããŠ
- ãmacOSçãHomebrewã䜿ã£ãŠgitãã€ã³ã¹ããŒã«
- è€æ°ã®GitHubã¢ã«ãŠã³ããä¿æããŠããã®ïŒGitHubãµããŒãã«åãåãããŠã¿ã
- è€æ°ã®GitHubã¢ã«ãŠã³ãã䜿ãåãããæã®èšå®æ¹æ³ãšTips