GitHubとのSSH接続設定 - graspPlugin/wiki GitHub Wiki
はじめに
昨年GitHubはパスワード認証を廃止しました.そのためそのままではコマンドライン上でcloneやpushなどを行うことができません.
このページではSSH接続の設定を行い,GitHub上のリポジトリを扱える様にします.
接続手順
鍵の生成
SSHは鍵認証と呼ばれるものの一つで,自分は秘密鍵を,相手側は公開鍵を持っている必要があります.秘密鍵が鍵本体,公開鍵が鍵穴とイメージしてもらえればわかりやすいと思います.両者が揃うことで初めてサーバーとの接続が成功します.
まずはSSHの秘密鍵と公開鍵を生成します.鍵はホームディレクトリ直下の.ssh
ディレクトリに入れる必要があるのでない場合はディレクトリを作成します.
mkdir ~/.ssh && cd ~/.ssh
それでは鍵を作りましょう.鍵の生成はssh-keygen
コマンドで行います.
t
オプションを使用してed25519
を指定していますが,これは暗号化手法を示しています.昔はrsa
方式が主流でしたが,これからはより強固でパフォーマンスに優れるed25519
の時代です.こちらを使いましょう.
鍵の生成コマンドを実行します.
ssh-keygen -t ed25519
下のように保存する鍵の名前を聞かれますが,デフォルトで結構ですので何も入力せずにEnter
を押します.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/USERNAME/.ssh/id_ed25519):
以下のように鍵を使用する際のパスワードの入力を求められるので2回入力し最後にEnter
を押すと生成が完了します.
Enter passphrase (empty for no passphrase): ### ここでパスワードを入力 ###
Enter same passphrase again: ### ここでパスワードを再度入力 ###
Your identification has been saved in /home/USERNAME/.ssh/id_ed25519.
Your public key has been saved in /home/USERNAME/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:MbVB5VaC795Ze2DxfPbcd0IUwXlsYww/sH8UhwGAUek USERNAME@PCNAME
The key's randomart image is:
+--[ED25519 256]--+
| .=*=+=*B.|
| ..o+ oO+*|
| o...o..*o|
| oE.. +..|
| S . . =.|
| . + B|
| . + *=|
| . +.B|
| .+|
+----[SHA256]-----+
ここで.ssh
ディレクトリの中に自分が持っておく秘密鍵id_ed25519
,相手側が持っておく公開鍵id_ed25519.pub
の二つが生成されているはずです.
ls
# id_ed25519 id_ed25519.pub
これで鍵の生成は完了です.
公開鍵のGitHubへの登録
次は公開鍵をGitHub側に持たせる設定を行います. GitHubにアクセスに作成したアカウントでログインしましょう. (ここからはスクショを撮るのがめんどくさいので言葉で説明します.すみません)
ページ右上のアイコンをクリックし,下から二番目,Sign out
の上のSettings
をクリックします.
するとアカウントの設定ページに飛びます.
左側に設定項目が並んでいますが,Accessカテゴリ内のSSH and GPG keys
をクリックします.
ここで上のSSH keysの右にNew SSH key
と書かれた緑色のボタンがあるのでクリックします.
Title
は任意で構いません.複数の端末からGitHubにアクセスしたいという場合は分かりやすい名前にするのがいいでしょう.
Key
の部分ですが,ここには公開鍵id_ed25519.pub
の中身をコピーして貼り付けます.公開鍵をエディターなどで開いて全選択からのコピーで問題ありません.
最後に下にある緑色のAdd SSH key
ボタンを押して登録完了です.
いざ接続
それでは登録した鍵を使ってssh
コマンドで接続を行いましょう.
ssh -T [email protected]
入力するとEnter passphrase for key 'id_ed25519' :
とパスワードの入力を求められるかもしれないので,その時は鍵作成時に決めたパスワードを入力しましょう.
# Hi 〇〇! You've successfully authenticated, but GitHub does not provide shell access.
と表示されたら成功です.お疲れ様でした.