GitHubの設定

Ubuntu Desktop環境構築 Part 13.5

公開日: 2021-01-20
更新日: 2023-10-01

  Table of Contents

GitとGitHubの違い

Git ファイルやソースコードの変更を分散型でトラッキングする仕組み
GitHub Gitで作成したリポジトリをホスティングするためのWebサービス
リポジトリ管理機能以外に課題管理やコードレビュー機能も提供

GitHubの個人アカウントとの連携(非推奨)

SSH プロトコルを利用してGitHubへの接続環境を構築します.SSH をセットアップする際には,SSH キーを生成し,ssh-agent に追加し,それから キーを自分の GitHubアカウントに追加します. SSH キーを ssh-agent に追加することで,パスフレーズの利用を通じて SSH キーに追加のセキュリティのレイヤーを持たせることができます.

REMARKS

新しい SSH キーを生成して ssh-agent に追加する

ssh-keygenというコマンドを用いてsshキーを作成します.which ssh-keygenを実行して,コマンドが存在するか確かめます.

1
2
% which ssh-keygen
usr/bin/ssh-keygen

次にsshキーを作成します.メールアドレスは自分のgit configで用いたメールアドレスを用いてください.

1
2
% ssh-keygen -t ed25519 -C "your_email@example.com"
> Generating public/private ed25519 key pair.

Enter a file in which to save the key」というメッセージが表示されたら,Enter キーを押します. これにより,デフォルトのファイル場所が受け入れられます.

1
> Enter a file in which to save the key (/home/you/.ssh/id_ed25519): [Press enter]

プロンプトで,安全なパスフレーズを入力します.

1
2
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

仮に~/.ssh/id_ed25519というキーが発行された場合,Permissionを変更しておく

1
% chmod 600 ~/.ssh/id_ed25519.pub

~/.ssh/configファイルも編集する.

1
2
3
4
5
6
7
Host github
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_ed25519`
  IdentitiesOnly yes
  TCPKeepAlive yes

ここの設定は以下のコマンドに対応します.

1
% git clone [User]@[Host]:[リポジトリアドレス]
設定項目 説明
Host ホスト名, ssh hogehogeでhogehogeとなるところ
User ログインユーザー, githubの場合はgit
Port port, default 22
HostName hostのアドレス, github.com
IdentityFile 秘密鍵のPATHを指定する
TCPKeepAlive 持続的接続の設定
IdentitiesOnly 使用する秘密鍵をIdentityFileだけにします.デフォルトではnoであり,noだと全ての秘密鍵を試そうとします.

GitHub アカウントへの新しい SSH キーの追加

SSH 公開鍵をGitHubに登録するところまでを目指します.そのためまず自分が作成したsshキーの公開鍵の内容を取得する必要があります.具体的にはクリップボードへのコピーです.

1
2
% sudo apt install xclip
% xclip -selection clipboard < ~/.ssh/id_ed25519.pub
  1. その後,GitHubにwebブラウザでアクセスし,Settingsを変更します(Settingsをクリック).
  2. ユーザ設定サイドバーでSSH and GPG keys(SSH及びGPGキー)をクリックします.
  3. [New SSH key] または [Add SSH key] をクリックします. [Title] フィールドで,新しいキーを説明するラベルを追加します. たとえば個人の Ubuntu Desktop を使っている場合,このキーを “Personal Ubuntu Desktop” などと呼ぶことが考えられます.
  4. 次に,クリップボードにコピーしたキーを [Key] フィールドに貼り付けます.

その後,[Add SSH key] をクリックして完了です.

SSH 接続をテストする

1
% ssh -T git@github.com

コマンド実行後以下のようなメッセージが出たら接続テスト成功です.

1
2
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access

ssh接続を使ったgit clone

ssh接続のユースケースの一つとして,private repositoryのgit cloneです.

1
2
3
4
5
6
7
% git clone git@github.com:RyoNakagami/sample_size.git
Cloning into 'sample_size'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.

ただし,GitHubとしてはSSH接続ではなくHTTPS接続による方法が推奨されています.プロジェクトなどで特段の制限や方針がなければHTTPSを使うことを検討してください.

References



Share Buttons
Share on:

Feature Tags
Leave a Comment
(注意:GitHub Accountが必要となります)