5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GitHub】15分調べても分からない人のためのSSH接続セットアップ方法

Last updated at Posted at 2019-10-27

自分でセットアップしたときに色んなサイトを行き来してしまい、効率が悪かったのでまとめてみました。
最下部に参考にさせて頂いた記事をまとめて記載してあります。
(非常に勉強になりました。ありがとうございます!)

おおむね、GitHub公式ヘルプページに沿った手順です。
誤り等あればご指摘頂けますと幸いです。

目的

Git使用時の効率UP

SSH接続しなかった場合、GitHubに接続するたびにユーザー名・パスワードを入力する必要があり、効率が悪いです。

SSH接続をすれば、その入力の手間を省けるためスムーズにgitコマンドを使用できて効率UP!

前提条件

環境

  • OS: macOS Mojave version 10.14.6
  • ターミナルのシェル: zsh

自分のものに置き換えて欲しいもの

  • メールアドレス: your_email@example.com
  • パスワード: your_password
  • ルートディレクトリ: /Users/you/
  • GitHubユーザーネームyour_username
  • Git管理するディレクトリ: /Users/you/myproject/

事前準備

  • GitHubアカウントの取得

手順

  1. 既存のSSHキーの確認(あれば「ssh-agentに追加する」へ移動)
  2. 新しいSSHキーを生成してssh-agentに追加する
  3. GitHubアカウントへの新しいSSHキーの追加
  4. SSH接続をテストする

1. 既存のSSHキーの確認

  • ターミナルで既存のSSHキーが存在するかを確認する。
    以下コマンドを入力。($は入力不要)
$ ls -al ~/.ssh
  • 出力されたファイル一覧から、自分は公開SSHキーを持っているか確認する。
    以下ファイルが出てくれば既に公開鍵を持っているということ。

    • id_dsa.pub
    • id_ecdsa.pub
    • id_ed25519.pub
    • id_rsa.pub(自分の場合はこれでした。GitHub使用者全体の9割以上はRSAらしいです。)
  • 現在使用している鍵の暗号強度の確認
    ※公開鍵はid_rsa.pubとして記載しています。

$ ssh-keygen -l -f ~/.ssh/id_rsa.pub

出力が以下のように、鍵長が2048以上、かつ暗号化方式がRSA,ECDSA,Ed25519であればセキュリティ上問題ないそうです。

2048 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_email@example.com (RSA)

2. 新しいSSHキーを生成してssh-agentに追加する

(ない場合のみ)新しいSSHキーを生成する

  • ターミナルを開く。
  • 新しいSSHキーを生成する。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 以下メッセージが表示されたら、Enter キーを押す。
> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
  • 次に出るパスフレーズは入力推奨
    無視してEnterでもいいと書いている記事もありましたが、GitHubは入力を推奨しています。

任意のパスフレーズを決め、入力してEnter。
何も入力せずEnterを押すと、パスフレーズなしとなります。

Enter passphrase (empty for no passphrase):

もう一度同じパスフレーズを入力し、Enter。

Enter same passphrase again:

SSHキーをssh-agentに追加する

  • ssh-agentを使うメリット

    • 複数のサーバーにSSH接続する際、毎回sshコマンドを入力しなくても良くなる(自動化)
    • サーバー上に秘密鍵をおく必要がない。
  • バックグラウンドでssh-agentを開始し、秘密鍵の登録状況がないことを確認する。

ssh-agentを起動。

$ eval "$(ssh-agent -s)"

秘密鍵の登録状況を確認する。なければ以下のように表記がある。

$ ssh-add -l
The agent has no identities.
  • (macOS Sierra 10.12.2以降を使用の場合)~/.ssh.configファイルを修正し、以下のように記述。
Host your_username
	HostName github.com
	User git
	AddKeysToAgent yes
	UseKeyChain yes
	IdentityFile ~/.ssh/id_rsa
  • SSH秘密鍵をssh-agentに追加し、パスフレーズをキーチェーンに保存する。
ssh-add -K ~/.ssh/id_rsa

3. GitHubアカウントへの新しいSSHキーの追加

  • SSHキーをクリップボードにコピーする
$ pbcopy < ~/.ssh/id_rsa.pub
  • GitHubにログインし、以下手順でSSHキーを登録する
    1. 右上のプロフィールをクリックし、Settingsで設定画面へ移動
    2. 左側のメニューからSSH keysをクリック
    3. Add SSH Keyをクリック
    4. Titleに識別できる文字列を入力(My Macbook Proなど)
    5. Body にSSHキーをペースト
    6. Add Keyをクリック

4. SSH接続をテストする

  • ターミナルを開く。
  • 以下コマンドで接続を確認する。
$ ssh -T git@github.com
  • 接続するかの確認メッセージが出るので、fingerprintが一致するかを確認して、yesと入力。
  • 下記文字列が出力されれば無事認証!
Hi your_username! You’ve successfully authenticated, but GitHub does not provide shell access.

【補足:設定漏れの場合】SSHキーパスフレーズを追加または変更する

とりあえずEnterでパスフレーズなしで済ませてしまった!というあなたのために。

以下コマンドで既存の秘密鍵のパスフレーズの変更が出来る。

$ ssh-keygen -p

変更したい秘密鍵がカッコ内のファイルで間違いなければEnter。

Enter file in which the key is (/Users/you/.ssh/id_rsa):

任意のパスフレーズを決め、入力してEnter。

Enter passphrase (empty for no passphrase):

もう一度同じパスフレーズを入力し、Enter。

Enter same passphrase again:

下記メッセージが出力されたらパスフレーズの設定が無事完了!

Your identification has been saved with the new passphrase.

参考にさせて頂いたサイト(ありがとうございます)

GitHub に SSH で接続する - GitHub ヘルプ
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
お前らのSSH Keysの作り方は間違っている - Qiita
2014-07-05
ssh-agentの使い方 - Qiita
~/.ssh/configについて - Qiita

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?