1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHubでのSSH接続手順

1
Posted at

SSHを利用してセキュアにソースコード管理を行うためのSSH接続について、手順をまとめました。
都度調べるのは面倒なので備忘録も兼ねて記事にしました。

目次

  • 前提
  • .sshディレクトリ作成
  • 公開鍵、秘密鍵作成
  • 公開鍵をGithubに追加
  • configファイル作成
  • パーミッション変更
  • 接続確認
  • 【参考】エラーについて
    • 秘密鍵のパーミッションがおかしい
    • ssh-add していない

前提

  • GitHubアカウントが作成済みであること(およびメール認証済であること)
  • Gitがインストール済みであること
  • Gitのユーザー名・メールアドレス設定済みであること

.sshディレクトリ作成

.sshディレクトリが存在しない場合、以下コマンドでディレクトリを作成する。

$ mkdir ~/.ssh

公開鍵、秘密鍵作成

特に指定がなければ、Enter3回押せばOK。
任意のファイル名を設定することも可能。(例:id_rsa_projectA
ファイル名を指定しなければ、id_rsaで作成される。
パスフレーズは設定したほうがより安全だが必須ではない。

$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

公開鍵をGithubに追加

Settings > SSH and GPG keys > SSH keys より、公開鍵を追加する。
Titleは任意のものでOK。
Key TypeはAuthentication keyとする。
Keyに公開鍵の中身を設定する(以下コマンドでコピー可能、ファイルを直接開いてコピーでもOK)。

$ clip < ~/.ssh/id_rsa.pub

configファイル作成

SSH接続の設定を行うファイル。
vimで編集する(メモ帳などテキストエディタでもOK)。
設定項目は好みにより調整する。
複数のアカウントで接続する場合、ホスト名にエイリアスをつけて管理する。
例えば、Host github.com_projectA、Host github.com_projectBなど
Host*に書いたものは全体に反映される共通設定となる。

$ touch ~/.ssh/config

$ vim ~/.ssh/config
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa ## 公開鍵
  User git ## ユーザー名
  ServerAliveInterval 60 ## タイムアウトする秒数
  ServerAliveCountMax 10 ## サーバからの応答確認の最大回数
  IdentitiesOnly yes

パーミッション変更

自分以外は操作不可とするため、権限を変更する。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*

SSHエージェント設定

ssh-agentはSSH認証エージェントで、秘密鍵のパスフレーズを一度入力するだけでその後の接続で再度パスフレーズを入力する必要がなくなる。
ssh-addでSSHエージェントに秘密鍵を追加する。
パスフレーズを設定している場合、パスフレーズの入力が求められる。

$ eval `ssh-agent`
or
$ eval $(ssh-agent -s) ##上のコマンドがエラーになる場合はこれを叩く

$ ssh-add ~/.ssh/id_rsa

接続確認

ここまでできたら、接続できているかを確認する。

$ ssh -T git@github.com

以下が出力されれば、接続完了。

Hi ora-kitaoka! You've successfully authenticated, but GitHub does not provide shell access.

1回目の確認では以下が出力されるが、これはSSHを使用したクライアントがサーバーに接続する際に、 そのサーバーが本当に接続したいサーバーかを念の為確認するものなので、yesでOK。

The authenticity of host 'github.com (20.27.177.113)' can't be established. ED25519 key fingerprint is SHA256:〜 This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])?

【参考】エラーについて

秘密鍵のパーミッションがおかしい

パーミッションが777などになっていると怒られるので、600など適切なパーミッションに修正する。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

ssh-add していない

ssh-addすればOK。

Permission denied (publickey).

ご一読いただき、ありがとうございました。
※本記事に関して不明点や不足等あれば、コメントにてご指摘ください。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?