まえがき
GithubのSSHの設定を教える機会が何度かあったので記事として残しておこうと思い筆を取りました.
メモ書き程度ですが利用していだだけたら幸いです.
①公開鍵・秘密鍵を作る
- .sshディレクトリに移動
$ cd $HOME/.ssh/
- キー生成
$ ssh-keygen -t ed25519
- キーの名前を入力
デフォルトはid_ed25519
鳩屋敷はid_<サービス名>_ed25519
で統一(あくまで一例)
Enter file in which to save the key (/home/hato_yashiki/.ssh/id_ed25519): (ここで入力)
ちなみにpathを含めた命名になるためフルパスで指定すれば始めのcd
はいらなかったりする.
入力し終えたらプロンプトが返ってくるまで全部エンターで良し.(公開鍵を使うためのパスワードが設定できる.気になる人は設定してもいいかも)
②公開鍵をGithubに登録
- 公開鍵のコピー
cat
でさっき作ったキーの公開鍵(拡張子が.pub
のファイル)の中身を見て,コピーしておく. - Githubを開く
Githubで自分のページのSettings
を開き,SSH and GPG keys
を開く. - 公開鍵の登録
New SSH key
ボタンを押し,Key
に先ほどコピーした公開鍵を貼り付ける.
Title
はなくてもいいが,どのPCのどのターミナルのものか,わかるよう命名しておく方が身のため.
Add SSH Key
を押して登録.
③config
ファイルの設定
Host github.com
Identityfile ~/.ssh/<さっき作成した秘密鍵(拡張子はいらない)>
User git
上記の内容を~/.ssh/config
に記述してください。vimでもvscodeでもechoでもメモ帳でも何で記述してもOKです。
④SSH疎通の確認
$ ssh -T git@github.com
ちゃんとconfig
ファイルができていれば
Hi <ユーザー名>! You've successfully authenticated, but GitHub does not provide shell access.
と返ってくるはず.
これでユーザーネームとかパスワードとかトークンとか気にせずに
$ git clone git@github.com:UserName/Repository.git
とかのコマンドが叩けるわけですね.
おまけ
$ git remote get-url origin
を叩くとoriginのURLが取得できる.これがHTTPSのURLだとSSH通信でpushやpullができない.
GithubからSSH用のURLをコピーしてoriginのURLを更新する必要がある.
$ git remote set-url origin <ssh用のURL>
これでpushやpullも問題なく行えるはず.
また別途SSH通信ができない場合はおまけに追記していくかも.