🔑
githubでSSH接続してみた!その時の手順まとめ。
こんにちは。
今回なんですが、githubをSSH接続した時に手順についてまとめました。
SSH接続とは
- 安全にサーバーに接続し操作する接続
サーバーを操作する人間がサーバーから離れた場所にいる場合を想定されている。離れたサーバーに誰でもログインできてしまうと、悪意を持った人間がやりたい放題となる為それを防止するために必要な接続方法です。
SSH接続までの大まかな流れ
SSH接続をするには大きく分けて2つの作業が必要になります。ローカルPCでの秘密鍵、公開鍵の設定とgithub側での設定。詳細は下記に手順を記載していきます。
手順:ローカルPCでの秘密鍵、公開鍵の設定
SSHの設定をするディレクトリへ移動
$~/.ssh
- user/user_name/.sshというがパスになるかと思います。user_nameの部分はそれぞれのPCで設定しているユーザー名が入ります。
- このディレクトリにSSH接続の鍵の情報が格納されるようになります。
SSHキーの生成
$ssh-keygen -t ed25519
- GitHub Enterprise Server でサポートされている公開鍵のファイル名は下記の3つです。違うファイル名をつけたい場合は次の手順:SSH configファイルのところで設定をすればサポートされていない公開鍵のファイル名でもSSH接続できます。
id_rsa.pub
id_ecdsa.pub
id_ed25519.pub
- 今回は-tオプションを付与してed25519の鍵を生成しております。
- -Cオプションで メールアドレスの情報を付与をするようにはgithub docでは記載ありましたが、あまり推奨されないとの記事も見かけました。どちらがいいのか深掘りはしていませんが今回はアドレスは付けずに鍵の生成をしております。
- このコマンドでid_ed25519 id_ed25519.pubの2つのファイルの生成がされました。
SSH config
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/user_name/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/user_name/.ssh/id_ed25519
Your public key has been saved in /Users/user_name/.ssh/id_ed25519.pub
~省略~
The key's randomart image is:
+--[ED25519 256]--+
|X=. .oo |
|B=.. . . . |
|=o+ o . * o |
|.o * . + @ |
| o E S * |
| o + . . * |
|o . o o . . |
|.o = . |
|= ..= |
+----[SHA256]-----+
- Enter passphraseでパスワードの設定を行います。パスワードは任意のものを設定します。このパスワードについてはSSH接続をする度に入力が必要になります。
- パスワードを設定するメリットとしては、鍵がどこかに流出したとしてもパスワードが分からない限りはSSH接続ができないということです。なのでセキュリティー的には安心ということです。
- 最後に可愛い感じの絵みたいなものが出てきたら設定が完了になります。
SSHのconfigファイルの修正
$cat config
Host github //任意の英字で設定する。
HostName github.com //必ずこれでないとダメらしい。
IdentityFile ~/.ssh/id_ed25519 //ファイルのルートとファイル名を設定
User git //必ずこれでないとダメらしい。
- configファイルがない場合は新たに作成してください。
- GitHub Enterprise Server でサポートされていない公開鍵のファイル名をつける際にはIdentityFileのルートとファイル名を適宜変更してください。
公開鍵をクリップボードへコピー
$pbcopy < id_ed25519.pub
- 公開鍵をクリップボードにコピーする。コピーした公開鍵はgithubでの設定の際に使用します。
SSH接続確認をする
$ssh -T github
Hi user_name! You've successfully authenticated, but GitHub does not provide shell access.
- "Hi user_name! ~~"と出て来れば接続完了!!
- 続いてgithubでの設定を行なっていきます。
参考に最終的に.sshディレクトリ内は下記のようになります。
$ ls
config id_ed25519 id_ed25519.pub
手順:githubでの設定
github docに分かりやすい手順の記載があったので下記のリンクを参照ください。
設定は以上になります。
githubを使いたいプロジェクトで初期化をした上でremote接続をすればSSHで接続できるはずです。また、仕事用と個人用でgithubを使い分けたい場合は別の設定が必要なのでご注意ください。
接続先を使い分けたい場合は下記のリンクが参考になります。
参考
Discussion