1
0

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.

【ssh】sshでgithubに接続する方法(mac)

Posted at

【ssh】sshでgithubに接続する方法(mac)

sshを使ってgithubに接続できるようにする方法のメモ。

<参考サイト>

(Github公式) 既存の SSH キーの確認
・[(Github公式) 新しい SSH キーを生成して ssh-agent に追加する](新しい SSH キーを生成して ssh-agent に追加する)
(Github公式) GitHub アカウントへの新しい SSH キーの追加
(Github公式) SAMシングルサインオンで利用するためにSSHキーを認可する

作業手順

  1. 既存のSSHキーが存在するか確認
  2. SSHキーの作成
    3. 作成方法
    4. SSHキーの注意点
    4. ssh-keygenのデフォルト設定
    5. ssh-keygenのオプション
    6. 暗号化方式とビット長の種類
  3. キーをssh-agentに追加
    4. ssh-agentとは?
    5. ssh-agentの起動と設定
    6. 秘密鍵を追加
    7. 多段認証(ForwardAgent)
  4. キーをgithubに追加
  5. githubのSSOを使うためにキーを許可する

## 1. 既存のSSHキーが存在するか確認

lsコマンドで.sshフォルダへ移動する。
オプションは「-a」と「-l」を指定。
 ┗ 「-a」:隠しフォルダも表示
 ┗ 「-l」:詳細を表示
 ┗ 「-al」:オプション-aと-l

$ ls -al ~/.ssh

下記ファイルが表示されればキーが存在している。

id_rsa: 秘密鍵
id_rsa.pub: 公開鍵

暗号方式によって、「rsa」の部分が、「ecdsa」や「ed25519」になったりする。

フォルダが存在しない場合、あるいは新しいキーを作成する場合はSSHキーを作成する。


## 2. SSHキーの作成 ### 作成方法 ssh-keygenコマンドでSSHキーを作成する。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

<オプションの内容>
-t: 暗号化方式
-b: 鍵長(ビット長)
-C: コメント

暗号化方式rsa、ビット長4096bit、e-mailアドレスをラベルとしたSSHキーを生成する。

3回Enterを促される。パスフレーズを設定しない場合は3回Enterをクリック。

<3回の確認内容詳細>

1回目(フォルダとファイル名)
Enter file in whch to save the key (/Users/(username)/.ssh/id_rsa):

ファイルの保存場所とファイル名の確認。基本的にデフォルト。
※既存で鍵が存在する場合は上書きされる。


2回目(パスフレーズ)
Enter passphrase (empty for no passphrase):

パスフレーズはパスワードとほぼ同意(より長い設定が可能)
このパスフレーズは秘密鍵にアクセスするためのもの。

zipフォルダやexcelファイルにパスワードをかけるのと同じ。キー自体が暗号化しているので2段階承認となる。

パスフレーズは10文字以上推奨。後述のssh-agentにパスフレーズを記録することで、都度呼び出しの手間を省ける。


3回目(パスフレーズ)
Enter same passphrase again:

先程入力したパスワードの確認。
入力していない場合は空欄でEnter。


### SSHキーの注意点 作成した秘密鍵(ファイルの中身の文字コード)は超重要!漏れるのは厳禁。

この秘密鍵があれば、対となる公開鍵を登録している全てのサービスにSSHでアクセスできてしまう。


### ssh-keygenのデフォルト設定 オプション指定なしで鍵を生成した場合、
  • 暗号化方式:rsa
  • 鍵長:2048bit
  • フォルダ: ~/.ssh
  • 秘密鍵: id_rsa
  • 公開鍵:id_rsa.pub

ssh-keygenのオプション

キー生成時にはいくつかオプションがある。

オプション 内容
-t 暗号化方式
-b ビット長(鍵長)
-C コメント
-f ファイルパス
-p 古いパスフレーズ
-N 新しいパスフレーズ

オプションを設定しない場合、「-t」「-b」は自動で決まり、「-f」「-p」「-N」は質問される。

暗号化方式とビット長の種類

暗号化方式 デフォルト鍵長 鍵長オプション
RSA 2048 1024, 2048, 4096
ECDSA 256 256, 384, 521
ED25519 256 256

RSAはビット長が長いため暗号化と解読が遅い。
ED25519がより強固で速い仕様。OpenSSH 6.5以降でサポートされている。

OpenSSH6.5は2014年1月に発表された仕様。


## 3. キーをssh-agentに追加 ### ssh-agentとは?

秘密鍵を登録しておくツール。
パスフレーズも登録できるため、SSH接続する際のパスワード入力の手間を省ける。

秘密鍵は複数登録可能。

多段でSSH接続(あるサーバーを踏み台にして別のサーバーに接続)することも可能。

ssh-agentの起動と設定

# ssh-agentの起動
$ eval "$(ssh-agent -s)"


# sshのconfigファイルを開く
$ open ~/.ssh/config

# (configファイルがない場合は作成)
$ touch ~/.ssh/config
$ open ~/.ssh/config

.ssh/configファイル
Host サーバー名(任意)
 AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

秘密鍵を追加

$ ssh-add -K ~/.ssh/id_rsa

追加する際にパスフレーズをキーチェン保存する。

多段認証(forwardAgent)

AWSのgit-codecommitなど、githubにSSH接続し、githubからAWSに接続する設定も可能。

configファイルに以下を記述する。

.ssh/configファイル
ForwardAgent yes

Host サーバー名(任意)
  User ユーザー名

## 4. キーをgithubに追加 githubにログイン後、以下ページの手順に沿って実行。

image.png

  • titleは任意。SSHキー識別用の名前をつける
  • Keyには公開鍵の内容を登録。※秘密鍵ではない!

## 5. githubのSSOを使うためにキーを許可する 以下URLに沿って実行。 https://docs.github.com/ja/github/authenticating-to-github/authorizing-an-ssh-key-for-use-with-saml-single-sign-on

以上。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?