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

シェアする

  • このエントリーをはてなブックマークに追加

リポジトリをSubversionからGitに変えたので、クライアントのTortoiseSVNをTortoiseGitに変えて使ってみたら、リポジトリーに接続する都度、パスワード入力を求められます。

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

スポンサードリンク

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オプションを付けて実行してみると、以下のようにエラーが表示されます。

git.exe pull -v --no-rebase --progress "origin"

error: cannot spawn C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe -pw xxxxx: No such file or directory
fatal: unable to fork

git did not exit cleanly (exit code 1) (1279 ms @ 2015/01/26 20:08:22)

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というインストーラーをダウンロードしてインストールします。

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

$ git-credential-winstore -i C:\Program Files (x86)\Git\bin\Git.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\(ユーザー名)であることを確認します。
$ pwd
/c/Users/(ユーザー名)

sshで利用する認証鍵を生成します。
$ ssh-keygen -i -f public.key > authorized_keys

生成した認証鍵をサーバーに転送します。
(サーバーのユーザーホーム /home/(ユーザー名)/.sshというディレクトリが存在しない場合は、作成しておきます)

$ scp authorized_keys (サーバーのユーザー名)@aa.bb.cc.dd:~/.ssh

The authenticity of host ‘aa.bb.cc.dd (aa.bb.cc.dd)’ can’t be established.
ECDSA key fingerprint is yy:yy:yy:yy:yy:yy:yy:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
(yesを入力します)
Warning: Permanently added ‘aa.bb.cc.dd’ (ECDSA) to the list of known hosts
(サーバーのユーザー名)@aa.bb.cc.dd’s password:
(パスワードを入力します)

まとめ

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

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

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

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

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です