Skip to main content

新しい SSH キヌを生成しお ssh-agent に远加する

既存の SSH キヌをチェックした埌、新しい SSH キヌを生成しお認蚌に䜿甚し、ssh-agent に远加できたす。

Platform navigation

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 眲名を䜿甚するには、䞀郚の叀いクラむアントをアップグレヌドする必芁がありたす。

  1. [タヌミナル][タヌミナル][Git Bash] を開きたす。

  2. 以䞋のテキストを貌り付けお、䟋で䜿われおいるメヌル アドレスを実際の 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]
    
  3. プロンプトが衚瀺されたら、セキュアなパスフレヌズを入力したす。 詳しくは、「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、たたはその他の倖郚゜ヌスによっおむンストヌルされるアプリケヌションは䜿わないでください。

  1. バックグラりンドでssh-agentを開始したす。

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    

    環境によっおは、異なるコマンドを䜿う必芁があるかもしれたせん。 たずえば、ssh-agent を開始する前に sudo -s -H を実行しおルヌト アクセスを䜿甚したり、exec ssh-agent bash や exec ssh-agent zsh を䜿甚しお ssh-agent を実行したりする必芁がある堎合がありたす。

  2. 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
      

      メモ

      • キヌにパスフレヌズを远加しないようにする堎合は、UseKeychain の行を省略する必芁がありたす。
      • Bad configuration option: usekeychain ゚ラヌが発生した堎合は、構成の Host *.github.com セクションに行をさらに远加したす。
      Text
      Host github.com
        IgnoreUnknown UseKeychain
      
  3. 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 ファむル) にコマンドを远加しおください。

  4. GitHub で自分のアカりントに SSH 公開キヌを远加したす。 詳しくは、「GitHub アカりントぞの新しい SSH キヌの远加」をご芧ください。

GitHub Desktop をむンストヌル枈みの堎合、これを䜿っお SSH キヌを扱わずにリポゞトリをクロヌンできたす。

  1. 新しい_管理者暩限_の 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
    
  2. 昇栌されたアクセス蚱可のないタヌミナル りィンドりで、SSH 秘密キヌを ssh-agent に远加したす。 キヌを別の名前で䜜成した堎合、たたは別の名前の既存のキヌを远加する堎合は、コマンドの id_ed25519 を秘密キヌ ファむルの名前に眮き換えたす。

    ssh-add c:/Users/YOU/.ssh/id_ed25519
    
  3. GitHub で自分のアカりントに SSH 公開キヌを远加したす。 詳しくは、「GitHub アカりントぞの新しい SSH キヌの远加」をご芧ください。

  1. バックグラりンドでssh-agentを開始したす。

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    

    環境によっおは、異なるコマンドを䜿う必芁があるかもしれたせん。 たずえば、ssh-agent を開始する前に sudo -s -H を実行しおルヌト アクセスを䜿甚したり、exec ssh-agent bash や exec ssh-agent zsh を䜿甚しお ssh-agent を実行したりする必芁がある堎合がありたす。

  2. SSH プラむベヌトキヌを ssh-agent に远加したす。

    キヌを別の名前で䜜成した堎合、たたは別の名前の既存のキヌを远加する堎合は、コマンドの id_ed25519 を秘密キヌ ファむルの名前に眮き換えたす。

    ssh-add ~/.ssh/id_ed25519
    
  3. GitHub で自分のアカりントに SSH 公開キヌを远加したす。 詳しくは、「GitHub アカりントぞの新しい SSH キヌの远加」をご芧ください。

ハヌドりェア セキュリティ キヌ甚の新しい SSH キヌを生成する

macOS たたは Linux を䜿っおいる堎合は、新しい SSH キヌを生成する前に、SSH クラむアントの曎新たたは新しい SSH クラむアントのむンストヌルが必芁になる堎合がありたす。 詳しくは、「゚ラヌ: 䞍明なキヌの皮類」をご芧ください。

  1. ハヌドりェア セキュリティ キヌをコンピュヌタヌに挿入したす。

  2. [タヌミナル][タヌミナル][Git Bash] を開きたす。

  3. 以䞋のテキストを貌り付けお、䟋のメヌル アドレスを 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"
    
  4. メッセヌゞが衚瀺されたら、ハヌドりェア セキュリティ キヌのボタンにタッチしたす。

  5. "キヌを保存するファむルを入力しおください" ずいうメッセヌゞが衚瀺されたら、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]
    
  6. パスフレヌズの入力を求められたら、Enter キヌを抌したす。

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
    
  7. GitHub で自分のアカりントに SSH 公開キヌを远加したす。 詳しくは、「GitHub アカりントぞの新しい SSH キヌの远加」をご芧ください。