0
2

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接続方法

Posted at

この記事について

自分用です。

SSH接続を久しぶりに使おうとしたら忘れてしまったので備忘録。

GitHubとGitLabそれぞれの鍵を生成し、どう設定ファイルを書けばいいのかメモする。

環境

MacBookPro Catalina

前提知識

  • ~/.ssh内にSSH関連のファイルがある

  • 基本的に、known_hosts、秘密鍵、公開鍵、configという4つのファイルがある。

$ ls ~/.ssh

流れ

  1. 鍵(秘密鍵と公開鍵)を作る
  2. 設定ファイルを書く
  3. 接続コマンドを実行して、接続を確認する。

鍵を作る

ssh-keygenコマンドを使う。

-fはファイル名で、例えばgithub用の鍵を生成しようと思ったら、わかりやすい名前を書く。

ここではid_rsa_githubとする。

$ ssh-keygen -t rsa -f id_rsa_github

すると~/.sshに公開鍵id_rsa_github.pubと秘密鍵id_rsa_githubが生成される。

公開鍵id_rsa_github.pubはGitHubのページに、秘密鍵id_rsa_github~/.ssh/config内の設定で記述する。

今回は、github用とgitlab用で、複数個の鍵ペアを作るから、フォルダ分けしておく。

$ cd ~/.ssh
$ mkdir for_github
$ mv id_rsa_* for_github/

設定ファイルを書く

~/.ssh/config内に設定を書いていく。

このファイルはgithubとgitlabで分ける必要はない。

複数の設定を一つのファイルに書くことができるので、~/.sshに置いておく。

以下のように内容を記述する。

~/.ssh/config
Host github
    HostName github.com
    User git
    identityFile ~/.ssh/for_github/id_rsa_github

分かりやすいように、
① Host github
② HostName github.com
③ User git
④ identityFile ~/.ssh/for_github/id_rsa_github
としよう。

Host、HostName、User、identityFile以外にも設定できるけど、今回はこの4つだけ説明。

最終的にこのあと、

$ ssh -T github

というコマンドを打って、接続を確認する。

この時の-Tの後のgithubが①Hostで設定したものに対応している。
ここではgithubにしてるけど、分かりやすい名前であればなんでもいい。

どこに繋ぐかというと、

User@Hostname

すなわち、

git@github.com

に接続しようとする。
GitHubでもGitLabでもいいが、マイページで自分のリポジトリをCloneするときにコピーする文字列が、git@github.comで始まっていると思う。
githubに繋ぐんだったら、全ユーザ、②と③の設定で良い。

④identityFileは、秘密鍵。.pubがついてないid_rsa_githubを指定する。

接続コマンド

上記でも説明したが、

$ ssh -T github

GitLabも同じように設定していく

$ cd ~/.ssh
# 先にディレクトリを作成してその中に鍵ファイルを作る。
$ mkdir for_gitlab
$ ssh-keygen -t rsa -f for_gitlab/id_rsa_lab

# GitLabのマイページで公開鍵(.pub)の中身を追加
$ vi -b ~/.ssh/config

以下のように、中身を追加していく。

~/.ssh/config
Host github
	HostName github.com
	User git
	identityFile ~/.ssh/for_github/id_rsa_hub

Host gitlab
	HostName gitlab.com
	User git
	identityFile ~/.ssh/for_gitlab/id_rsa_lab
# 接続確認
$ ssh -T github
$ ssh -T gitlab

メモ

1回目の接続では、本当に繋いでいいですか?という確認のメッセージが出る。

1度繋いだら~/.ssh/known_hostsに記録され、2回目以降はメッセージが出なくなる。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?