SSH ã㌠ãã¹ãã¬ãŒãºã«ã€ããŠ
SSH (Secure Shell ãããã³ã«) ã䜿çšããŠãGitHub ã®ãªããžããªå ã®ããŒã¿ã«ã¢ã¯ã»ã¹ããæžã蟌ã¿ãè¡ãããšãã§ããŸãã SSH çµç±ã§æ¥ç¶ããå Žåã¯ãããŒã«ã« ã³ã³ãã¥ãŒã¿ãŒäžã®ç§å¯ã㌠ãã¡ã€ã«ã䜿çšããŠèªèšŒããŸãã詳现ã«ã€ããŠã¯ããSSH ã«ã€ããŠããåç §ããŠãã ããã
SSH ããŒãçæãããšãã«ããã¹ãã¬ãŒãºã远å ããŠããŒãããã«ã»ãã¥ãªãã£ã§ä¿è·ã§ããŸãã ããŒã䜿çšãããšãã¯ãå¿ ããã¹ãã¬ãŒãºãå ¥åããå¿ èŠããããŸãã ããŒã«ãã¹ãã¬ãŒãºããããããŒã䜿çšãããã³ã«ãã¹ãã¬ãŒãºãå ¥åããããªãå Žåã¯ãSSH ãšãŒãžã§ã³ãã«ããŒã远å ã§ããŸãã SSH ãšãŒãžã§ã³ãã§ã¯ SSH ããŒã管çãããã¹ãã¬ãŒãºãèšæ¶ããŸãã
SSH ããŒããŸã ãªãå Žåã¯ãèªèšŒã«äœ¿ãæ°ãã SSH ããŒãçæããå¿ èŠããããŸãã SSH ããŒãæ¢ã«ãããã©ãããããããªãå Žåã¯ãæ¢åã®ããŒã確èªã§ããŸãã 詳ããã¯ããæ¢åã® SSH ããŒã®ç¢ºèªããã芧ãã ããã
ããŒããŠã§ã¢ ã»ãã¥ãªã㣠ããŒã䜿ã£ãŠ GitHub ã«å¯ŸããèªèšŒãè¡ãå Žåã¯ãããŒããŠã§ã¢ ã»ãã¥ãªã㣠ããŒçšã«æ°ãã SSH ããŒãçæããå¿ èŠããããŸãã ã㌠ãã¢ã§èªèšŒãè¡ããšãã«ãããŒããŠã§ã¢ ã»ãã¥ãªã㣠ããŒãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããå¿ èŠããããŸãã 詳ããã¯ãOpenSSH 8.2 ã®ãªãªãŒã¹ ããŒããã芧ãã ããã
æ°ãã SSH ããŒãçæãã
ããŒã«ã« ã³ã³ãã¥ãŒã¿ãŒã§æ°ãã SSH ããŒãçæã§ããŸãã éµãçæãããšãGitHub.com ã®ã¢ã«ãŠã³ãã«å ¬ééµã远å ããŠãSSH çµç±ã® Git æäœã®èªèšŒãæå¹ã«ããããšãã§ããŸãã
ã¡ã¢
GitHub ã¯ã2022 幎 3 æ 15 æ¥ã«å€ãã»ãã¥ãªãã£ã§ä¿è·ãããŠããªãããŒã®çš®é¡ãåé€ããããšã§ã»ãã¥ãªãã£ã匷åããŸããã
ãã以éãDSA ã㌠(ssh-dss
) ã¯ãµããŒããããªããªããŸããã GitHub ã®å人çšã¢ã«ãŠã³ãã«æ°ãã DSA ããŒã远å ããããšã¯ã§ããŸããã
2021 幎 11 æ 2 æ¥ä»¥åã® valid_after
ãæã€ RSA ã㌠(ssh-rsa
) ã§ã¯ãä»»æã®çœ²åã¢ã«ãŽãªãºã ãåŒãç¶ã䜿çšã§ããŸãã ãã®æ¥ä»¥éã«çæããã RSA ããŒã¯ãSHA-2 眲åã¢ã«ãŽãªãºã ã䜿çšããå¿
èŠããããŸãã SHA-2 眲åã䜿çšããã«ã¯ãäžéšã®å€ãã¯ã©ã€ã¢ã³ããã¢ããã°ã¬ãŒãããå¿
èŠããããŸãã
-
[ã¿ãŒããã«][ã¿ãŒããã«][Git Bash] ãéããŸãã
-
以äžã®ããã¹ãã貌ãä»ããŠãäŸã§äœ¿ãããŠããã¡ãŒã« ã¢ãã¬ã¹ãå®éã® GitHub ã¡ãŒã« ã¢ãã¬ã¹ã«çœ®ãæããŸãã
ssh-keygen -t ed25519 -C "your_email@example.com"
ã¡ã¢
Ed25519 ã¢ã«ãŽãªãºã ããµããŒãããŠããªãã¬ã¬ã· ã·ã¹ãã ã䜿ã£ãŠããå Žåã¯ã以äžã䜿ããŸãã
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ããã«ãããæå®ããã¡ãŒã«ã¢ãã¬ã¹ãã©ãã«ãšããŠäœ¿ã£ãŠæ°ãã SSH ããŒãäœæãããŸãã
> Generating public/private ALGORITHM key pair.
"ããŒãä¿åãããã¡ã€ã«ãå ¥åããŠãã ãã" ãšããã¡ãã»ãŒãžã衚瀺ãããããEnter ããŒãæŒããŠæ¢å®ã®ãã¡ã€ã«ã®å Žæããã®ãŸãŸäœ¿ãããšãã§ããŸãã 以åã« SSH ããŒãäœæããå Žåãssh-keygen ããå¥ã®ããŒã®æžãæããæ±ããããå Žåãããããšã«æ³šæããŠãã ããããã®å Žåã¯ãã«ã¹ã¿ã åã® SSH ããŒãäœæããããšããå§ãããŸãã ãã®ããã«ã¯ãããã©ã«ãã®ãã¡ã€ã«äœçœ®ãã¿ã€ãããid_ALGORITHMãã«ã¹ã¿ã ããŒåã§çœ®ãæããŸãã
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]
> Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
> Enter a file in which to save the key (/home/YOU/.ssh/id_ALGORITHM):[Press enter]
-
ããã³ããã衚瀺ãããããã»ãã¥ã¢ãªãã¹ãã¬ãŒãºãå ¥åããŸãã 詳ããã¯ããSSH ããŒã®ãã¹ãã¬ãŒãºã䜿ãããã芧ãã ããã
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
SSH ããŒã ssh-agent ã«è¿œå ãã
ssh-agent ã«æ°ãã SSH ããŒã远å ããŠããŒã管çããåã«ãæ¢åã® SSH ããŒã確èªããæ°ãã SSH ããŒãçæããŠããå¿
èŠããããŸãã SSH ããŒããšãŒãžã§ã³ãã«è¿œå ãããšãã¯ãmacOS ã®æ¢å®ã® ssh-add
ã³ãã³ãã䜿ãããã«ããmacportsãhomebrewããŸãã¯ãã®ä»ã®å€éšãœãŒã¹ã«ãã£ãŠã€ã³ã¹ããŒã«ãããã¢ããªã±ãŒã·ã§ã³ã¯äœ¿ããªãã§ãã ããã
-
ããã¯ã°ã©ãŠã³ãã§ssh-agentãéå§ããŸãã
$ eval "$(ssh-agent -s)" > Agent pid 59566
ç°å¢ã«ãã£ãŠã¯ãç°ãªãã³ãã³ãã䜿ãå¿ èŠããããããããŸããã ããšãã°ãssh-agent ãéå§ããåã«
sudo -s -H
ãå®è¡ããŠã«ãŒã ã¢ã¯ã»ã¹ã䜿çšããããexec ssh-agent bash
ãexec ssh-agent zsh
ã䜿çšã㊠ssh-agent ãå®è¡ãããããå¿ èŠãããå ŽåããããŸãã -
macOS Sierra 10.12.2 以éã䜿ã£ãŠããå Žåã¯ã
~/.ssh/config
ãã¡ã€ã«ãä¿®æ£ããŠãããŒã ssh-agent ã«èªåçã«èªã¿èŸŒãŸãããã¹ãã¬ãŒãºãããŒãã§ãŒã³ã«æ ŒçŽãããããã«ããå¿ èŠããããŸãã-
ãŸãã
~/.ssh/config
ãã¡ã€ã«ãæ¢å®ã®å Žæã«ååšãããã©ããã調ã¹ãŸãã$ open ~/.ssh/config > The file /Users/YOU/.ssh/config does not exist.
-
ãã¡ã€ã«ããªãå Žåã¯ããã¡ã€ã«ãäœæããŸãã
touch ~/.ssh/config
-
~/.ssh/config
ãã¡ã€ã«ãéãã以äžã®è¡ãå«ãŸããããã«ãã¡ã€ã«ã倿ŽããŸãã SSH ããŒãã¡ã€ã«ã®ååãŸãã¯ãã¹ããµã³ãã«ã³ãŒããšç°ãªãå Žåã¯ãçŸåšã®èšå®ã«äžèŽããããã«ãã¡ã€ã«åãŸãã¯ãã¹ã倿ŽããŠãã ãããText Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519
Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519
ã¡ã¢
- ããŒã«ãã¹ãã¬ãŒãºã远å ããªãããã«ããå Žåã¯ã
UseKeychain
ã®è¡ãçç¥ããå¿ èŠããããŸãã Bad configuration option: usekeychain
ãšã©ãŒãçºçããå Žåã¯ãæ§æã®Host *.github.com
ã»ã¯ã·ã§ã³ã«è¡ãããã«è¿œå ããŸãã
Text Host github.com IgnoreUnknown UseKeychain
Host github.com IgnoreUnknown UseKeychain
- ããŒã«ãã¹ãã¬ãŒãºã远å ããªãããã«ããå Žåã¯ã
-
-
SSH ç§å¯éµã ssh-agent ã«è¿œå ããŠããã¹ãã¬ãŒãºãããŒãã§ãŒã³ã«ä¿åããŸãã ããŒãå¥ã®ååã§äœæããå ŽåããŸãã¯å¥ã®ååã®æ¢åã®ããŒã远å ããå Žåã¯ãã³ãã³ãã® id_ed25519 ãç§å¯ã㌠ãã¡ã€ã«ã®ååã«çœ®ãæããŸãã
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
ã¡ã¢
--apple-use-keychain
ãªãã·ã§ã³ã§ã¯ãssh-agent ã« SSH ããŒã远å ãããšããã¹ãã¬ãŒãºãããŒãã§ãŒã³ã«èªåçã«æ ŒçŽãããŸãã ãã¹ãã¬ãŒãºãããŒã«è¿œå ããªãå Žåã¯ã--apple-use-keychain
ãªãã·ã§ã³ãæå®ããã«ã³ãã³ããå®è¡ããŸãã--apple-use-keychain
ãªãã·ã§ã³ã¯ãApple ã®æšæºããŒãžã§ã³ã®ssh-add
ã§ãã Monterey (12.0) ããåã® macOS ããŒãžã§ã³ã§ã¯ã--apple-use-keychain
ãš--apple-load-keychain
ãã©ã°ã§ããããæ§æ-K
ãš-A
ã䜿çšãããŠããŸãããApple ã®æšæºããŒãžã§ã³ã®
ssh-add
ãã€ã³ã¹ããŒã«ããŠããªãå Žåã¯ããšã©ãŒãçºçããããšããããŸãã 詳ããã¯ãããšã©ãŒ: ssh-add: éæ³ãªãã·ã§ã³ -- apple-use-keychainããã芧ãã ããããã¹ãã¬ãŒãºã®å ¥åãæ±ãç¶ãããããšãã¯ãå Žåã«ãã£ãŠã¯
~/.zshrc
ãã¡ã€ã« (ãŸã㯠bash çšã®~/.bashrc
ãã¡ã€ã«) ã«ã³ãã³ãã远å ããŠãã ããã -
GitHub ã§èªåã®ã¢ã«ãŠã³ãã« SSH å ¬éããŒã远å ããŸãã 詳ããã¯ããGitHub ã¢ã«ãŠã³ããžã®æ°ãã SSH ããŒã®è¿œå ããã芧ãã ããã
GitHub Desktop ãã€ã³ã¹ããŒã«æžã¿ã®å Žåãããã䜿ã£ãŠ SSH ããŒãæ±ããã«ãªããžããªãã¯ããŒã³ã§ããŸãã
-
æ°ãã_管çè æš©é_ã® PowerShell ãŠã£ã³ããŠã§ãssh-agent ãå®è¡ãããŠããããšã確èªããŸãã ãSSH ããŒã®ãã¹ãã¬ãŒãºã䜿ããã®ãssh-agent ã®èªåèµ·åãã«èšèŒãããæé ã䜿ãããæåã§éå§ããããšãã§ããŸãã
# start the ssh-agent in the background Get-Service -Name ssh-agent | Set-Service -StartupType Manual Start-Service ssh-agent
-
ææ Œãããã¢ã¯ã»ã¹èš±å¯ã®ãªãã¿ãŒããã« ãŠã£ã³ããŠã§ãSSH ç§å¯ããŒã ssh-agent ã«è¿œå ããŸãã ããŒãå¥ã®ååã§äœæããå ŽåããŸãã¯å¥ã®ååã®æ¢åã®ããŒã远å ããå Žåã¯ãã³ãã³ãã® id_ed25519 ãç§å¯ã㌠ãã¡ã€ã«ã®ååã«çœ®ãæããŸãã
ssh-add c:/Users/YOU/.ssh/id_ed25519
-
GitHub ã§èªåã®ã¢ã«ãŠã³ãã« SSH å ¬éããŒã远å ããŸãã 詳ããã¯ããGitHub ã¢ã«ãŠã³ããžã®æ°ãã SSH ããŒã®è¿œå ããã芧ãã ããã
-
ããã¯ã°ã©ãŠã³ãã§ssh-agentãéå§ããŸãã
$ eval "$(ssh-agent -s)" > Agent pid 59566
ç°å¢ã«ãã£ãŠã¯ãç°ãªãã³ãã³ãã䜿ãå¿ èŠããããããããŸããã ããšãã°ãssh-agent ãéå§ããåã«
sudo -s -H
ãå®è¡ããŠã«ãŒã ã¢ã¯ã»ã¹ã䜿çšããããexec ssh-agent bash
ãexec ssh-agent zsh
ã䜿çšã㊠ssh-agent ãå®è¡ãããããå¿ èŠãããå ŽåããããŸãã -
SSH ãã©ã€ããŒãããŒã ssh-agent ã«è¿œå ããŸãã
ããŒãå¥ã®ååã§äœæããå ŽåããŸãã¯å¥ã®ååã®æ¢åã®ããŒã远å ããå Žåã¯ãã³ãã³ãã® id_ed25519 ãç§å¯ã㌠ãã¡ã€ã«ã®ååã«çœ®ãæããŸãã
ssh-add ~/.ssh/id_ed25519
-
GitHub ã§èªåã®ã¢ã«ãŠã³ãã« SSH å ¬éããŒã远å ããŸãã 詳ããã¯ããGitHub ã¢ã«ãŠã³ããžã®æ°ãã SSH ããŒã®è¿œå ããã芧ãã ããã
ããŒããŠã§ã¢ ã»ãã¥ãªã㣠ããŒçšã®æ°ãã SSH ããŒãçæãã
macOS ãŸã㯠Linux ã䜿ã£ãŠããå Žåã¯ãæ°ãã SSH ããŒãçæããåã«ãSSH ã¯ã©ã€ã¢ã³ãã®æŽæ°ãŸãã¯æ°ãã SSH ã¯ã©ã€ã¢ã³ãã®ã€ã³ã¹ããŒã«ãå¿ èŠã«ãªãå ŽåããããŸãã 詳ããã¯ãããšã©ãŒ: äžæãªããŒã®çš®é¡ããã芧ãã ããã
-
ããŒããŠã§ã¢ ã»ãã¥ãªã㣠ããŒãã³ã³ãã¥ãŒã¿ãŒã«æ¿å ¥ããŸãã
-
[ã¿ãŒããã«][ã¿ãŒããã«][Git Bash] ãéããŸãã
-
以äžã®ããã¹ãã貌ãä»ããŠãäŸã®ã¡ãŒã« ã¢ãã¬ã¹ã GitHub ã¢ã«ãŠã³ãã«é¢é£ä»ããããã¡ãŒã« ã¢ãã¬ã¹ã«çœ®ãæããŸãã
ssh-keygen -t ed25519-sk -C "your_email@example.com"
ssh-keygen -t ed25519-sk -C "your_email@example.com"
ssh-keygen -t ed25519-sk -C "your_email@example.com"
ã¡ã¢
ã³ãã³ãã倱æãããšã©ãŒ
invalid format
ãŸãã¯feature not supported,
ãåãåãå Žåã¯ãEd25519 ã¢ã«ãŽãªãºã ããµããŒãããŠããªãããŒããŠã§ã¢ ã»ãã¥ãªã㣠ããŒã䜿ã£ãŠããå¯èœæ§ããããŸãã 代ããã«ã次ã®ã³ãã³ããå ¥åããŸããssh-keygen -t ecdsa-sk -C "your_email@example.com"
-
ã¡ãã»ãŒãžã衚瀺ãããããããŒããŠã§ã¢ ã»ãã¥ãªã㣠ããŒã®ãã¿ã³ã«ã¿ããããŸãã
-
"ããŒãä¿åãããã¡ã€ã«ãå ¥åããŠãã ãã" ãšããã¡ãã»ãŒãžã衚瀺ãããããEnter ããŒãæŒããŠæ¢å®ã®ãã¡ã€ã«ã®å Žæããã®ãŸãŸäœ¿ããŸãã
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ed25519_sk): [Press enter]
> Enter a file in which to save the key (c:\Users\YOU\.ssh\id_ed25519_sk):[Press enter]
> Enter a file in which to save the key (/home/YOU/.ssh/id_ed25519_sk):[Press enter]
-
ãã¹ãã¬ãŒãºã®å ¥åãæ±ããããããEnter ããŒãæŒããŸãã
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
-
GitHub ã§èªåã®ã¢ã«ãŠã³ãã« SSH å ¬éããŒã远å ããŸãã 詳ããã¯ããGitHub ã¢ã«ãŠã³ããžã®æ°ãã SSH ããŒã®è¿œå ããã芧ãã ããã