はじめに
自身の備忘録として記録する
SSHってなに?
簡単にいうと暗号通信で、サーバーを遠隔操作する仕組み。
通信データが暗号化される。
ウイルスバスターはPCをウイルスから守るように
SSHは通信を不正アクセスなどから守ることができる。
telnetというサーバーを遠隔操作の仕組みもあるが
こちらはSSHとは違い通信データが暗号化されない。
GithubとのSSH連携はなぜ必要?
Githubを使用(認証)する方法の1つ
ローカルリポジトリに対しての操作だけで良ければ、SSHキーなどの設定は不要。
GitHub等のリモートリポジトリを利用する場合は、インターネットを経由する通信が発生。
言い換えると、通信回線の先にあるリポジトリとのやりとりが必要になる。
よって、その間の通信の暗号化を行わないとアカウントの乗っ取りなどの被害に遭ってしまう。
そのために設定が必要。
実施環境
Windows
Git Bash
mac windows linuxそれぞれで手法が異なるので注意
本記事ではwindowsを使用する。
すでにSSHキーがPC内にあるか確認する
SSHキーがPC内に存在しているかどうかを確かめる。
何度か作成したことがあれば、複数個ある。
Git bashで下記コマンドを実行
(デフォルトのコマンドプロンプトではできない)
$ ls -al ~/.ssh
SSHキーを同じ名前で作成を進めてしまうと上書き扱いになってしまうので要注意
SSHキーを作成する
Git bashで下記コマンドを実行
ssh-keygen -t ed25519 -C "your_email@example.com"
-C "~"はコメントなのでコメントが特になければ、入力する必要はない。
ssh-keygen -t ed25519 -f file_name
ファイル名指定無しで生成した物と別途に生成したい時は
-f file_name
で生成される鍵ファイル名を指定できる。
カレントディレクトリに生成されるのでcd ~/.ssh/
して事前に移動おくこと。
コマンドを実行すると、パスワードの設定を求められるので、
流れでパスワードの設定を行う。
SSH agentを起動する
SSH agentは、秘密鍵を自動管理してくれる。常にカギを置いておくのではなく、
秘密鍵を必要な時にだけ、秘密鍵を利用してくれるツール。
eval "$(ssh-agent -s)"
Agent pid 数字と表示される。
ssh-add ~/.ssh/id_ed25519
id_ed25519
は作成した先ほどSSHキーの名前が入る。
GitHubにSSHキーを登録する
Git bashで下記を実行
clip < ~/.ssh/id_ed25519.pub
文字列がコピーされた。Cntl+vでペースト可能。
~GitHubへ移動~
- GitHubのアカウントにログイン
- 右上のアイコンから「Settings」
- 左メニューの「SSH and GPG keys」
- 「New SSH Key」
- [title]へは鍵の名前、[Key]へは先ほどコピーしたものをctrl+vでペースト
- 「Add SSH Key」
- パスワードを求められるので入力して完了
接続テストをする
Git bashで下記を実行
ssh -T git@github.com
正しく、接続できていればsuccessfullyと出る。
参考にしたサイト