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
コマンドで接続し、パスワード認証無しで接続できることを確認する。