SSHとは何か?
他のコンピュータを遠隔操作するための通信を暗号化
して送る仕組みのことです。
逆に暗号化されていない平文
で通信をする仕組みの一つがtelnetです
GitHubでなぜSSH?
通常GitHubではプットするたびにパスコードの認証が求められます。回避するには
秘密鍵と公開鍵を作成し、公開鍵をGitHubに登録する必要があるからです。
ターミナルでSSHディレクトリを開いてSSHを削除する方法
SSHキーは~/.ssh
に保存されているので
次の方法で開くことができます
-
カレントディレクトリを
~/.ssh
にするcd ~/.ssh
-
カレントディレクトリをFinderで表示
open .
-
マウスで選択してから削除する
新しいSSHキーを生成する
次のコマンドを実行します
Ed25519はデジタル署名アルゴリズムの名称です。
ssh-keygen -t ed25519 -C "GitHubに登録したメールアドレス"
エンターキーを押すことで次のメッセージが表示されますので
さらにエンターキーを押すことでSSHのデフォルトディレクトリが
ファイルの場所として登録されます
Enter a file in which to save the key
//訳:キーを保存するファイルを入力してください
次はパスフレーズを登録登録を求められるので
任意のパスフレーズを入力してからエンターキーを押します
Enter passphrase (empty for no passphrase):
// 訳:パスフレーズを入力してください (パスフレーズがない場合は空欄):
Enter same passphrase again:
// 訳:同じパスフレーズをもう一度入力してください:
出来上がると次の表示が出力されます
また~/.ssh
にファイルが作成されます
GitHubアカウントへ作成したSSHキーを追加します
GitHubにSSHキーを追加するには、ファイルの中身を
GitHubの設定画面にコピー&貼り付けする必要があります。
-
コマンドでSSHファイルの内容をコピーします
pbcopy < ~/.ssh/id_ed25519.pub // ファイル名が異なる場合は修正します
-
GitHub画面右上アイコンから
setting
を開きます -
サイドメニューの
SSH and GPG keys.
から
NEW SSH Key
を進みます
- Titleへ任意の名前を入力、Keyへコピーした内容を貼り付けます
貼付け後はAdd SSH Key
を押します
※GitHubのパスワードが求められることがあります
- SSHでGitHubに接続できるか確認します
実行するとSSHのパスフレーズが求められるので
入力してエンターを押します
ssh -T git@github.com
// sshでGitHubに接続できるか確認します
- 次のメッセージの場合は
Yes
と入力しエンターを押します -
~/.ssh
へ接続許可リストとしてファイルが作成されます
(known_hosts)
The authenticity of host 'github.com (20.27.177.113)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
//ホスト 'github.com (20.27.177.113)' の信頼性を確立できません。
//このキーは他の名前では知られていません
//接続を続行してもよろしいですか (はい/いいえ)
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Enter passphrase for key
// 警告: 既知のホストのリストに「github.com」(ED25519) が
// 永久に追加されました。
// キー「/Users/ishiyamatakuya/.ssh/id_ed25519」の
// パスフレーズを入力してください:
- 次のメッセージが出れば接続成功です
Hi GitHubのユーザー名! You've successfully authenticated