今回はGitHubリポジトリにSSHで接続する方法を紹介しま…
Gitで外部のサーバーのリモートリポジトリにgit pushしようと思ったらうまくいかなかったので、対処法をまとめました。
git push すると以下のようなエラーが出力されます。リモートリポジトリへのSSH接続がうまく行っていないのが原因でした。
Permission denied (publickey).
ssh-agentで設定する
ssh-agentで設定します。ssh-agentはsshの秘密鍵のパスフレーズを指定します
eval 'ssh-agent' ssh-add 秘密キーのパス
これで、git push ができるようになりましたが、ssh-agentを起動するたびに登録が必要なので手間です。
git configで設定する
ssh configにSSHの設定を登録していきます。ssh configには複数のsshの設定を登録できるのでとても便利です。
.sshディレクトリにあるconfigファイルを編集していきます。
sudo vi ~/.ssh/config
viで開いたら以下を記述
「Host」は任意でも良いはずなのですが、僕の環境では「HostName」と一致していないとなぜか失敗するので、 同じものを入力しました。
Host ホスト名 HostName ホスト名 User ユーザー名 IdentityFile 秘密鍵までのパス Port ポート番号 TCPKeepAlive yes IdentitiesOnly yes
これで接続できるようになりましたが、毎回SSHで設定したパスフレーズを聞かれます。
Enter passphrase for key '/Users/username/.ssh/privatekey':
パスフレーズを記憶するように設定
MacのSierra以降でパスフレーズを記憶してくれないようなので、ssh configに以下の設定を追加しました。
Host * UseKeychain yes AddKeysToAgent yes
これで無事接続できるようになりました。
参考サイト
macOS 10.12 Sierra で SSH のパスフレーズを憶えてくれない問題への workaround
GitHubに入門(その1)