LoginSignup
1
1

More than 3 years have passed since last update.

githubのssh認証が一生うまくいかない話@win10

Last updated at Posted at 2019-10-08

2019.10.07

講義で必要があっていままで避けていたssh認証でgithubの認証をすることにしたけど滅茶苦茶苦労したのでここにその経緯を書いておこうと思う.
(結局は色んなサイトのまとめになってしまうとは思うけど)
かなり時間がかかったため,記憶と履歴を掘り返しながら書いている.
多少の記憶違いは悪しからず.

発生した条件

  • windows10
  • openssh ver7.7

はじめにやったこと.

  • 鍵をつくる
  • 公開鍵をコピーする
  • githubに登録する
  • configを作成しなおす

基本的なwindowsでの認証鍵の作り方はここを参考に
お前らのSSH Keysの作り方は間違っている
あとここも詳しかった
GitHubでssh接続する手順

1つ目の壁 ~public key登録してるんやが~

で,.sshフォルダにid_rsaとid_rsa.pubを作成し,githubで鍵を登録した.
できたぞ!!とgit clone を実行しようとした

Cloning into 'AAA AAA'...
Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.xxx' to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

あかんかった.
取り敢えずopenssh publickey permission deniedとかで調べているとこの辺が出てくるのでトライしたけど全部結果は変わらなかった
この時調べて出てきたのはこの辺り

まあ当たり前だけどよく確認しましょうって話よね.
んで最後にだいたいを実行して接続確認をする.

>>> ssh -T git@github.com
Hi xxxxxxxxx! You've successfully authenticated, but GitHub does not provide shell access.

こいつはうまくいっていた.
けどやっぱりcloneしようとすると失敗する.

更に調べていくと次のワードにぶつかった.
ssh-add, ssh-agent
ソース
新しい SSH キーを生成して ssh-agent に追加する

ssh-agentにkeyを登録しなければならないらしい
よーし光が見えてきたぞ,と実行に移す.

2つめの壁 ~ssh-agentってなんやねん~

そもそもssh-agentないですよって言われた.
なかなか解説が見当たらなくて苦労したけど,そこもひっくるめて簡単に言えば
OpenSSHのバージョンが低かったらしい.
(後から思えば,本当にここが悪かったのかなあ?)
とにかく,ssh-agentとssh-addを使うことができなかった.
状態は

  • ssh -T git@github.comは返ってくる.
  • sshを用いたgit cloneはpermission denied(public key)のまま

以下のコマンドでssh接続のデバッグ表示もすることができる.

>>> ssh -Tv git@github.com

このデバッグの時に表示されたアラートが,バージョンアップしたら消えたので,OpenSSHの7.7より8.0のがRSAの鍵の強度が高いらしい.

使ってたOpenSSHのバージョン
OpenSSH 7.7p1

入れ直したOpenSSHのバージョン
OpenSSH 8.0p1
OpenSSH DL元

インストールに有用だった参考サイト
Windows Server 2019 および Windows 10 用 OpenSSH のインストール
Windows10にssh-agentをインストール

この辺りからWindowsPowerShellを使って作業し始めた.
やっていることは,
パッケージダウンロード→path設定→powershellでインストールと起動
の流れ.
ここのクライアント側の作業も参考にした
WindowsにOpenSSHをインストールする

バージョンアップして,git_bashを立ち上げ,最後にやったことは以下

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh-agent -s
ssh-add ~/.ssh/id_rsa

サイトによっては,二行目をeval $(ssh-agent -s)にすると書いてあるが,win10の場合evalのカッコ内だけ入力すれば大丈夫.

雑多な情報を集めた記事になってしまった.許してほしい....|:3ミ

まとめ

  • win10でssh認証をしたい場合
  • ssh-keygenで鍵をつくる
  • ssh-agentを起動する
  • ssh-addに認識させる
  • githubに鍵を登録する

という作業が必要.
場合によっては,ssh-addやssh-agentがない場合があるので,その場合は適宜インストール作業する必要がある.

追記

この状態では,端末を閉じるとまたエラーが出るので,
現在,gitbashを起動し,

eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa

をやり直している.
(今度直そう…)

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