1. GitHub用のSSHキーを生成する
昔はRSA
でSSHキーを生成していたようですが、RSA
より強固らしいed25519
でSSHキーを生成します。
-c
オプションを使って、コメントにメールアドレスを付与します。
$ cd ~/.ssh
$ ssh-keygen -t ed25519 -C "your_email@example.com"
SSHキーの保存場所を聞かれるので、~/.ssh
下に設置します。
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/username/.ssh/id_ed25519): /home/username/.ssh/id_ed25519
パスフレーズを設定する場合は、入力します。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
これで、SSHキーの作成が完了です。
$ ls ~/.ssh
id_ed25519 id_ed25519.pub known_hosts
2. SSHキーをssh-agentに追加する
パスフレーズを聞かれないようにするため、ssh-agent
に秘密鍵を追加します。
2.1. ssh-agentを起動する
ssh-agent
を実行します。
% eval "$(ssh-agent -s)"
2.2. configファイルを更新する
~/.ssh/config
ファイルを作成して、修正します。
$ touch ~/.ssh/config
$ chmod 600 ~/.ssh/config
$ vim config
configファイルに追記します。
Host github
HostName github.com
IdentityFile ~/.ssh/id_ed25519
TCPKeepAlive yes
IdentitiesOnly yes
User git
2.3. ssh-agentに鍵を登録する
ssh-add -K ~/.ssh/id_ed25519
3. SSHキーをGitHubアカウントに追加する
GitHubにログインし、https://github.com/settings/keysから、New SSH key
ボタンをクリックします。
Titleにマシーン名、Keyに先ほど作成した、id_ed25519.pub
の中身をコピペし、Add SSH key
ボタンをクリックします。
パスワード入力が必要な場合は、入力します。SSH keys
の中に、追加したSSH keyが表示されれば完了です。
4. SSH接続をテストする
ssh
で接続テストします。ユーザ名は、config
で設定済みなので、github
と打つだけで十分です。
$ ssh -T github
出力メッセージに
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
と、出てば接続できています。