前置き
本記事ではGitHubでssh接続する手順を紹介しています。Windows 10(19042)にUbuntu-20.04を入れて検証しています。
手順は大きく以下になります
- 公開鍵と秘密鍵を生成する(公開鍵暗号での認証には公開鍵と秘密鍵が必要なため)
- 公開鍵をGithubへ登録する
- configファイル(どの鍵を使用して認証するかの設定ファイル)を作成
- 接続を確認する
公開鍵と秘密鍵を生成する
.sshに移動(フォルトでは、各ユーザーの SSH 鍵はそのユーザーの ~/.ssh
ディレクトリに置かれています)
cd ~/.ssh
鍵を生成する
ssh-keygen
Enter3回押すと、キーの作成が完了します。
- Enter file in which to save the key
鍵のデフォルトの名称がid_rsaで作成されます。任意の名称を付ける場合はつけたい名称を入力します。 - Enter passphrase
デフォルトだとパスワードなしで鍵が作成されます。パスワードを設定した場合は実際にこの鍵を使用して認証する場合にパスワードを入力する必要があります
.sshに公開鍵(id_rsa.pub)と秘密鍵(id_rsa)が作成されているのがわかります
公開鍵をGithubへ登録する
GithubアカウントのSettingからSSH and GPG keysを選択し、New SSH keyをクリック
ターミナルに戻り先ほど作成した公開鍵の中身をcatコマンドで表示しコピーします(実際は赤色の部分に表示されています)
Githubに戻りコピーした内容を貼り付けてAdd SSH Keyをクリック
configファイル作成
1.公開鍵と秘密鍵を生成するの部分で、名前を指定して鍵を作成している場合はconfigファイルを設定する必要があります(今回はデフォルトの名称で作成しているので不要です。)
※ssh接続の際「~/.ssh/id_rsa」、「~/.ssh/id_dsa」、「~/.ssh/identity」をデフォルトで見に行くようになっているため。
まず、configファイル作成します
vim ~/.ssh/config
例えば、鍵の名称をrsa_githubで作成している場合だと、以下のように指定します
Host github.com
HostName github.com
User git
IdentityFile "/Users/xxx/.ssh/rsa_github"
configファイルを保存します
接続を確認する
ターミナルで以下コマンドを実行し、You've successfully authenticated, but GitHub does not provide shell access.と表示されれば設定完了です。
ssh -T git@github.com
これでssh接続の準備が完了しました。あとは任意のリモートリポジトリのURL(SSH用)とリポジトリを紐づけて(git remote add origin git@github.com:username/hoge.git)あげればpushできるようになります。
以上です。
まとめ
いかがでしたでしょうか。本記事では、GitHubでssh接続する手順を紹介しています。公開鍵と秘密鍵の生成から公開鍵をGithubへ登録し、接続を確認するところまでの一通りの流れを行なっています。