$ 【Githubトークン】
ターミナルでGithubからコードを
受け取る

ターミナルからgit cloneをしようとしたら、エラーになりました。

<svg class="eyecatch-svg" viewBox="0 0 192 192" xmlns="http://www.w3.org/2000/svg">
  <!-- 背景 -->
  <rect width="192" height="192" rx="32" ry="32" fill="white"/>
  
  <!-- ターミナルウィンドウ -->
  <g transform="translate(32, 40)">
    <!-- ウィンドウ本体 -->
    <rect width="128" height="96" rx="8" ry="8" fill="#E0E0E0" stroke="#607D8B" stroke-width="3"/>
    
    <!-- ウィンドウヘッダー -->
    <rect width="128" height="20" rx="8" ry="8" fill="#607D8B"/>
    <rect y="20" width="128" height="8" fill="#607D8B"/>
    
    <!-- ターミナルドット -->
    <circle cx="12" cy="10" r="3" fill="#F44336"/>
    <circle cx="24" cy="10" r="3" fill="#FF9800"/>
    <circle cx="36" cy="10" r="3" fill="#4CAF50"/>
    
    <!-- コマンドプロンプト -->
    <text x="12" y="48" font-family="monospace" font-size="16" fill="#607D8B">$</text>
    <line x1="24" y1="42" x2="56" y2="42" stroke="#9E9E9E" stroke-width="3" stroke-linecap="round"/>
  </g>
  
  <!-- 鍵(メイン要素) -->
  <g transform="translate(64, 112)">
    <!-- 鍵の頭部 -->
    <circle cx="32" cy="16" r="14" fill="none" stroke="#2196F3" stroke-width="4"/>
    <circle cx="32" cy="16" r="6" fill="none" stroke="#2196F3" stroke-width="3"/>
    
    <!-- 鍵の軸 -->
    <rect x="30" y="30" width="4" height="32" rx="2" ry="2" fill="#2196F3"/>
    
    <!-- 鍵の歯 -->
    <rect x="26" y="48" width="8" height="6" fill="#2196F3"/>
    <rect x="26" y="56" width="8" height="6" fill="#2196F3"/>
  </g>
  
  <!-- チェックマーク -->
  <g transform="translate(120, 140)">
    <circle cx="20" cy="20" r="18" fill="#4CAF50"/>
    <path d="M 12 20 L 18 26 L 30 14" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
  </g>
</svg>【Githubトークン】<br class="chiilabo-br is-on"> ターミナルでGithubからコードを<br class="chiilabo-br is-on">受け取る

実は、パスワードではなく、「トークン」を使う必要があるからです。

関連記事

1. Githubでアクセス用トークンを生成する

まずは、Githubの設定からトークンを作成します。

1. Githubでアクセス用トークンを生成する
1. Githubでアクセス用トークンを生成する

作成した「トークン」は パスワードの代わりに使います。

Username: GitHubのユーザー名
Password: トークン(sk- ではなく ghp_ など)Code language: HTTP (http)
1. Githubでアクセス用トークンを生成する

Password と書いてあるが トークンを貼ると、ちゃんとgit cloneができました。

2. .git-credentials

毎回聞かれないようにするには、Git の認証キャッシュが必要です。

git config --global credential.helper storeCode language: CSS (css)

ただし、~/.git-credentials に 平文保存される点は理解した上で使ってください1

このコマンド後に、git pullなどでgithubにアクセスし、キーを入力すると、.git-credentialsが生成され、保存されるようになります。

2. .git-credentials

3. SSH鍵認証

credential.helper store は平文保存のため、SSH鍵認証の方が推奨されます:

3. SSH鍵認証
<em># SSH鍵を生成</em>
ssh-keygen -t ed25519 -C "鍵のコメント(メールアドレスなど)"

<em># 公開鍵をGitHubに登録後、HTTPS URLをSSHに変更</em>
git remote set-url origin git@github.com:username/repo.gitCode language: HTML, XML (xml)

まず、PCにSSH鍵ペアのうち秘密鍵を保管し、GitHubのリモートレポジトリに公開鍵を登録しています。

また、リポジトリの接続先URLを毎回トークン入力が必要なhttpsからSSH鍵で自動認証される git@github.com:username/repo.git に変更しています。

完了すると、結果は

git remote -v

で確認できます。

変更前(HTTPS):

origin  https://github.com/username/repo.git (fetch)
origin  https://github.com/username/repo.git (push)Code language: JavaScript (javascript)

変更後(SSH):

origin git@github.com:username/repo.git (fetch)
origin git@github.com:username/repo.git (push)

  1. ただし、パスワードが暗号化なしのテキストファイルでホームディレクトリに保存される、というデメリットがあります。 Git – 認証情報の保存