[git]ssh接続するときの鍵ファイルの指定どうするの

メモ。sshの鍵ファイルがデフォルトの場所に無いときは、「/.ssh/config」というファイルを作り、ここに接続先のHostとともに鍵の場所を指定してやる必要がある。

■Windows7の場合

場所:C:\Users\{ユーザ名}\.ssh\config

herokuに上がっているソースをダウンロードしたいんだけど。
と思ってコマンドプロンプトからgit cloneてしたら「Permission denied (publickey)」と言われました。
開発時はeclipseのherokuプラグイン使ったから意識してなかったのですが、gitでssh接続するときって、鍵ファイルの指定ってどうやってするんだろ?と思ってgitコマンドを見てみてもそれっぽいのはありません。ssh側で解決せよってことなでしょう。

OpenSSHを使ってssh-keygenで鍵を作ると、デフォルトだとユーザのルートに配置されます。ここにある限りは特に指定なくても良いのですが、今回はわざわざ別の場所に置いていたんですねー。なので上記のように「/.ssh/config」ファイルで鍵の場所を指定してやる必要があるのでした。

後日談。
お行儀の悪いことに、Windows7で作った鍵ファイルをノートPC(mac)でも使おうとした所、怒られた。
「Permissions 0666 for ‘/Users/path/to/rsa’ are too open.」みたいな。
こちらの記事によれば、パーミッションを「0600」に変えてやれば良いのだと。「chmod 0600」してから再度試してみる。成功した。
いや、つまり鍵ファイルをdropboxに置いて複数マシンで共有するということをしていた訳ですよ。お行儀の悪いことに。


コメントを残す