LoginSignup
10
14

「SSHのパスフレーズ忘れた!!」からのGitLabに公開鍵を再登録するまでの話

Last updated at Posted at 2020-07-05

暫くぶりにプライベートで使用しているGit リポジトリを触る時間を作れたので、
Git pushしてみたら

Enter passphrase for key '/Users/reinayamaguchi/.ssh/id_rsa':

って問われて、「はて??? パスフレーズどこ行った??」となり、
仕方ないので、今までのSSH鍵さんにサヨナラして新しい鍵を作成することになった。

という、情けない経験からの覚書です。

Step 1 - SSH KEY の削除

  1. ターミナルで「.ssh」のディレクトリに移動
$ cd ~/.ssh
  1. ファイルを確認
$ ls -l

-rw-r--r--@ 1 [user_name]  staff   192 Sep  9  2018 config
-rw-------@ 1 [user_name]  staff  1766 Sep  4  2018 id_rsa
-rw-r--r--@ 1 [user_name]  staff   401 Sep  4  2018 id_rsa.pub
-rw-r--r--@ 1 [user_name]  staff   383 Jun 28 17:35 known_hosts

3.「id_rsa」「id_rsa.pub」を削除しls -lで確認

$ rm id_rsa id_rsa.pub

$ ls -l

-rw-r--r--@ 1 [user_name]  staff  192 Sep  9  2018 config
-rw-r--r--@ 1 [user_name]  staff  383 Jun 28 17:35 known_hosts

Step 2 - SSH公開鍵を作成

GitLabでは「ED25519」「RSA」を推奨している。
作成方法はGenerating a new SSH key pairで解説している。

どっちを採用しようかと思ったところ、
SSH は (RSA 鍵より) ED25519 鍵の方が強固で速いということ記事で
「ED25519 の方が RSA よりも強度が高く、しかも速いです。」と記されていたので「ED25519」で作成することにした。

  1. key作成コマンドでkeyの作成。-Cフラグでメールアドレスなどのコメントを入れられる。-Cフラグなしでも作成できる。
$ ssh-keygen -t ed25519 -C "<comment>"

2.以下のコメントが表示される

Generating public/private ed25519 key pair. 
Enter file in which to save the key (/home/user/.ssh/id_ed25519):

なにも入力せずに[Enter]キー押下すると、
パスフレーズの入力を求められるので確認含め2回入力する

Enter passphrase (empty for no passphrase): <- 好きなパスワードを入力
Enter same passphrase again: <- 確認のためにもう一度入力
  1. 以下が表示されてSSH Keyが作成される
Your identification has been saved in /Users/[user_name]/.ssh/id_ed25519. 
Your public key has been saved in /Users/[user_name]/.ssh/id_ed25519.pub.  
The key fingerprint is:
SHA256:t4XcnCqRp6cGxy81cR3zyJiurATJ1UBOfv5LEUCn7wY <comment>
  • 公開鍵:id_ed25519.pub <- 公開鍵、GitLab(Bitbucket/GitHub)に渡す
  • 秘密鍵:id_ed25519 <- 秘密鍵、他人には見られないようにする

4.他の人が秘密鍵・公開鍵を観覧できないようにパーミッションを変更する。

$ chmod 600 id_ed25519

$ chmod 600 id_ed25519.pub

Step3 GitLabに公開鍵を登録する

1.公開鍵をコピーする

$ pbcopy < ~/.ssh/id_ed25519.pub

2.GitLabの「ユーザー設定」→ 「SSH Keys」に移動し公開鍵を登録する。

Step4 「クライアント側」 ~/.ssh/config にSSH Keyを設定する

~/.ssh/configを開く。

$ vim ~/.ssh/config

前回、SSH鍵を作成してGitLab登録したときに以下を追記してあるので、秘密鍵のファイル名を変更した。

# GitLab.com
Host gitlab.com
  User <User Name> <- GitLabで使用しているユーザー名
  HostName gitlab.com
  TCPKeepAlive yes <- IdentityFileを利用する場合。yesを指定
  identitiesonly yes <- 持続的接続のこと。yesを指定
  identityFile ~/.ssh/id_ed25519 <- [id_rsa]を[id_ed25519]に差し替え

以上で、git pull , git push ができるようになった!

参考サイト

10
14
4

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
10
14