LoginSignup
5
3

More than 5 years have passed since last update.

MSYS2でgitのsshがPermission denied (publickey)

Last updated at Posted at 2017-02-05

Git for WindowsからMSYS2へ乗り換えてgit push等をしようとしたら、エラーPermission denied (publickey)が発生した。

gitのエラーの調査

参考: Git - 環境変数

環境変数GIT_TRACEを設定すると、gitは処理の詳細を表示する。
例えばgit pushのエラー箇所を調べたい場合は下記のように実行する。

$ GIT_TRACE=true git push

sshがPermission denied (publickey)でコケていた。
~/.ssh配下の公開鍵などが読めていないっぽい。

sshのエラーの調査

参考: githubにsshで接続しようとした時にはまった - WhereToStart

オプション-vを設定すると、sshは処理の詳細を表示する。
例えばbitbuket.orgへのアクセス時の動作を確認したい場合は下記のように実行する。

$ ssh -vT bitbucket.org

/home/ymdymd/.ssh配下のファイルを読んでいた。$HOMEはそこじゃないのに。

sshが~/.sshを参照するようにする

参考: msys2での$HOMEとOpenSSHでのホームディレクトリの違い - Qiita

ホームディレクトリを変更したくて$HOMEを設定していたが、MSYS2のsshは、それを認識してくれないらしい。
ユーザー名ymdymdの場合、以下を実施した。

  1. 旧ホームディレクトリ/home/ymdymdを削除する
  2. D:/MyHomeを新$HOMEとしたいので、/etc/fstabD:/MyHome /home/ymdymdを追記する

/etc/fstab設定後は/home/ymdymdD:/MyHomeにアクセスする筈

これでOpenSSHが$HOME/.ssh/configを読んでくれるようになった。
しかしもう一つすることがある。

~/.ssh 以下ファイルのパーミッションを変更する

参考: SSHが鍵認証されないとき、パーミッションを疑え。 - それマグで!

~/.ssh等が他人から変更可能だと危険なので(危険だと判断してsshがコケるので)パーミッションを変更する。

$ find ~/.ssh | xargs chmod 755

では確認してみよう。

$ ssh -vT bitbucket.org
OpenSSH_7.3p1, OpenSSL 1.0.2j  26 Sep 2016
debug1: Reading configuration data /home/MyHome/.ssh/config
:
略
:
debug1: Exit status 0

アクセス成功。この後めちゃくちゃgit pushした。

git-credential-manager for Windows を入れて認証を省略

参考: Git Credential Manager for Windows (GCM) のアップデート(v0.9 Beta) | OPC Diary

おまけ。認証情報を管理してくれる仕組み。
Git for Windowsだと標準で入っていたが、MSYS2に乗り換えたので自分で入れる。

GitHub - Microsoft/Git-Credential-Manager-for-Windows: Secure Git credential storage for Windows.

Releaseからgcmw-<バージョン>.zipをDLし、下記どちらかを実施する。

  • install.cmdを実行
  • install.cmdLICENSE.TXTREADME.md以外の9ファイルを/usr/lib/git-coreに配置する

通常はどちらでもよいのだろうが、自分の場合はGit for Windowsのインストール情報をレジストリに書いてしまっていたため、install.cmdが期待通り動作しなかった。

5
3
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
5
3