Gitクライアント(TortoiseGit)でsshでログインするときにパスワード入力をなくす方法

Git

バージョン管理システムとして使っているリポジトリを、SubversionからGitに変更しました。

それに伴い、クライアントをTortoiseSVNからTortoiseGitに変えて使ってみました。

TorgoiseGitでは、TortoiseSVNと異なり、リポジトリーに接続する都度、パスワード入力を求められます。

毎回、パスワードを入力するのは面倒なので、今回、パスワードの入力をスキップする方法を調べてみました。

スポンサーリンク
スポンサーリンク

TortoiseGitでパスワード入力をなくすのは難しい

SubversionのクライアントであるTortoiseSVNの場合、パスワードをスキップするには設定画面を開きます。

image

Network ⇒ SSH Clientで

C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe -pw xxxxx

のように、pwオプションでパスワードを引数にすることによりパスワード入力をなくすことが出来ます。

Gitでも同じことが出来るだろうと思い、TortoiseGit で、設定画面を開きます。

image

Network ⇒ SSH Clientで

C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe -pw xxxxx

のように、pwオプションを付けて実行してみると、以下のようにエラーが表示されます。

SSHのクライアントとして以下を試してみても結果は同じでした。

C:\Program Files\TortoiseGit\bin\TortoisePlink.exe

(TortoiseGit付属で、互換性保持のためのインストールされる古いsshクライアント)

C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe

(TortoiseSVN付属のsshクライアント)

_netrcやWindows Crendential Store for Gitを使ってもパスワードを求められる

いろいろと調べてみたところ、以下の方法で、パスワードの入力を回避できるらしいので試してみました。

_netrc

%USERPROFILE%\ディレクトリー(Windows 7,8 だと ”C:\Users\ユーザー名”)

に、_netrc というファイルを置いて、以下のように記述します。

これでパスワードを聞かれないはずって思いきや、やはりパスワード入力を求められます。。

Windows Crendential Store for Git

https://gitcredentialstore.codeplex.com/

から

git-credential-winstore.exe

というインストーラーをダウンロードしてインストールします。

この後、以下のコマンドを実行します。

これでパスワードが保存されるはずって思いきや、やはりパスワード入力を求められます。。

何か設定が間違っているんでしょうか?

どうしようもなくなって来ました。

秘密鍵と公開鍵の設定でパスワードをスキップ

秘密鍵と公開鍵の生成

Windowsの「スタートメニュー」から「TortoiseGit」を開き、「PuTTYgen」を起動します。

image

WS000109

「Generate」を押してからマウスを左右に動かします

マウスを左右に動かすことにより、キーが生成されます。

image

秘密鍵を保存するために、「Save private key」を押すと以下のダイアログが表示されます。

WS000111

「はい(Y)」を押します。

image

C:\Users\(ユーザー名)\private.ppk

というファイルを「保存(S)」します。

image

次に公開鍵を保存するために、「Save public key」を押します。

image

C:\Users\(ユーザー名)\public.key

というファイルを「保存(S)」します。

TortoiseGitで秘密鍵の設定

エクスプローラーを起動して「Git Clone…」を押します。

image

「Load Putty Key」のところで、先ほど作成した「private.ppk」を設定して「OK」を押します。

image

sshで利用する認証鍵の生成とサーバーへの転送

Windowsの「スタートメニュー」から「Git」を開き、「Git Bash」を起動します。

image

Git Bashでカレントディレクトリが、

C:\Users\(ユーザー名)

であることを確認します。

sshで利用する認証鍵を生成します。

生成した認証鍵をサーバーに転送します。


サーバーのユーザーホーム

/home/(ユーザー名)/.ssh

というディレクトリが存在しない場合は、作成しておきます。

まとめ

TortoiseGitで毎回、リポジトリのパスワード入力が求められるのは仕様なのかどうなのかわかりません。

さすがに毎回聞かれるのは不便だと思うんですけどね。

今回、ご紹介した方法では、当然ながら、別のパソコンからは使えません。

もっと手軽に便利な方法があってしかるべきだと思うんだけど、調べ方がまずいのかな。

Gitについてのおすすめの本

↓Gitについてのおすすめの本はコチラ

Git