Git for Windows で公開鍵必須になった?
今日新しい PC で Android Studio をセットアップしリモートの Git リポジトリに SSH 接続で git clone しようとしたら以下のエラーが表示された:
Could not read from remote repository.
これだけでは何だか分からない。
Android Studio 的には PATH に通っている git コマンドを発行しているだけなので Git for Windows 側が同様に失敗しているわけだ。
Windows PowerShell 上で同様に git clone してもエラーが表示されるが、今度はもう少し具体的なエラーが出た。
Permission denied (publickey)
これは何なのだろうか、ということで検索してみたら、どうも公開鍵が無いので接続できないということらしい。
公開鍵を生成しサーバに送信
Windows のユーザホームディレクトリは /Users/(ユーザ名) であり、その下の .ssh フォルダに移動する。
そこで公開鍵を生成する:
ssh-keygen -t rsa
出てくる質問は全部そのまま Enter でよい。
秘密鍵 (id_rsa) と公開鍵 (id_rsa.pub) が生成されるので、公開鍵の方を SSH 接続したいサーバに転送する:
scp id_rsa.pub (サーバ URL):~
最後にサーバ側 .ssh/authorized_keys に追記する形で公開鍵の登録完了する:
ssh (サーバ URL)
cat id_rsa.pub >> .ssh/authorized_keys
試しに ssh コマンドで接続し、パスワード認証無しで接続できることを確認する。