LoginSignup
2
2

More than 3 years have passed since last update.

Gitのssh鍵に名前をつけたらハマった件について

Last updated at Posted at 2020-05-22

なんでハマったのか

まず、この話の発端ですが、プログラミングスクールのカリキュラムに沿って作った公開鍵、秘密鍵の名前がデフォルトのid_rsaで、githubの登録名がpracticeとかなんとか。

すごくこだわりの強い性格が災いして
・秘密鍵・公開鍵にちゃんと名前をつけてあげたい!
・github上の登録名もしっかりしたい
と思い立って、作り直し、名前を変えたところエラー頻発。

かなりチームメンバーに迷惑をかけてしまいました…:frowning2:
同じようなこだわりの強い性格の人の助けになれたらと思い、メモしておきます。

要約

1.鍵に名前をつけるときは

Enter file in which to save the key (/Users/you/.ssh/id_rsa):
/Users/自分のPCのユーザ名/.ssh/つけたい名前

と絶対パスでつけてあげる

2.gitの仕様上、リモートリポジトリに接続するとき、デフォルトの
id_rsaを探しに行ってしまうので、ssh鍵と同じフォルダに

config
Host github.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/github_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

っていうファイルを作って、今回はリモートがgithubの場合ですが、
ここに接続するための鍵があるよ!って教えてあげないといけない

3.windowsかつPowershellの人はさらに

chmod 0600 つけた名前

でパーミッション許可してあげる。
と、いう感じです。

ここからの流れは長いので、
読みたい人は見てね :woman_tone1:

前提条件

・現在スクールでvagrant,VirtualBox,Ruby on Railsを用いて開発中
・vagrantの起動、railsサーバーの起動、gitコマンド等はすべて
 Powershellを用いて行っている

◎ハマリポイント1

Powershellに下を打ち込んでディレクトリの移動。

cd ~/.ssh

ここに作る意味は、gitがssh鍵を探しに行くデフォルトのフォルダがここだから。
ちなみに、vagrant内での.sshフォルダはvagrant upコマンドを打ち込んだときにターミナル or Powershellに表示される

default: /home/vagrant/work => ほにゃらら

ほにゃららの部分のディレクトリ下にできますよん

んで、

ssh-keygen -t rsa -b 4096 -C "githubに登録しているメールアドレス"

-t rsa = rsaというタイプの鍵にしますよ~
-b 4096 = 4096bitの長の鍵にしますよ~(デフォルトは2048bit。長いとセキュリティ向上するよ)
-C "" = 公開鍵の内容のしっぽにコメントが付くんだけど、その内容を""の中身にするよ~(メールアドレスにするのがスタンダードなんやて。)
という意味。

その後

Enter file in which to save the key (/Users/you/.ssh/id_rsa):github_rsa

で名前をつけたのですがこれが間違い、、、
英語読解力がなさすぎるんですが、in which to save(どこに保存する?)的な意味なので、

Enter file in which to save the key (/Users/you/.ssh/id_rsa):
 /Users/自分のPCのユーザ名/.ssh/github_rsa

と打ち込まなくてはならなかったんですよね、、、
これは私が単純に説明書読まないタイプの子なのが悪いです :joy:

◎ハマリポイント2

それでも消えないエラー。

Permission denied (publickey).

ここで私は思ったのですが、id_rsa(デフォルトの名前)のときはうまくいってたんだよな~、ということは名前をつけたことでエラーを吐いてるのか。(そりゃそう)

調べてみたら要約の通りで、gitの仕様上デフォルトの名前のid_rsaを探しに行くので、ない!作ってないやんけ!て言われる。

なので、.ssh下にconfigというファイル名で以下を記述

config
Host github.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/github_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

これでgithub_rsaを探しに行くようになってくれます。

◎ハマりポイント3

まだ消えないエラー。さすがにメンタルが弱る。今度は内容が違う。

Bad owner or permissions on C:/Users/*****/.ssh/config

これはwindowsユーザーかつPowershellを使ってる人だけに起こるみたいで、秘密鍵とconfigファイルを一緒のディレクトリに入れてるとこのエラー吐くとか。
(詳しくは引用見て欲しい)

秘密鍵を.sshと違うディレクトリに移動すれば解決らしいけど、
configの中身書き直すのめんどくさいし、

chmod 0600 github_rsa

で権限を与えました。

以上!長かったね、きれいにまとまってなくてごめんなさい。
エンジニアとしてまだ仕事してるわけじゃないので、間違っているところがあったら編集リクエスト?なりコメントなりお願いいたします :innocent:

参考にした記事
お前らのSSH Keysの作り方は間違っている
https://qiita.com/suthio/items/2760e4cff0e185fe2db9

GitHubユーザーのSSH鍵6万個を調べてみた
https://hnw.hatenablog.com/entries/2014/07/05

Win10のSSHでBad owner or permissions
https://qiita.com/ryota23/items/8d2745c3b275e8ec7ea8

秘密鍵を使った SSH 接続時に WARNING: UNPROTECTED PRIVATE KEY FILE! と表示されて接続できない
https://support.amimoto-ami.com/en/articles/934049-%E7%A7%98%E5%AF%86%E9%8D%B5%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F-ssh-%E6%8E%A5%E7%B6%9A%E6%99%82%E3%81%AB-warning-unprotected-private-key-file-%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%A6%E6%8E%A5%E7%B6%9A%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84

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