tag:crieit.net,2005:https://crieit.net/tags/Askpass.exe/feed 「Askpass.exe」の記事 - Crieit Crieitでタグ「Askpass.exe」に投稿された最近の記事 2021-03-13T23:47:53+09:00 https://crieit.net/tags/Askpass.exe/feed tag:crieit.net,2005:PublicArticle/16745 2021-03-13T23:47:53+09:00 2021-03-13T23:47:53+09:00 https://crieit.net/posts/git-authente-information-20210313 Git の認証情報について <p>AskPass.exe のエラー関係の対処の続きです。</p> <p>エラーでフォーカスが外れて入力を邪魔されることはなくなりましたが、一瞬表示されては消えるダイアログが気になるので、追加調査です。</p> <p>相変わらず認証情報で何らかの問題が発生していると考えられるため、認証情報周りの状況を確認します。</p> <p>ます、何によって Git の認証情報が管理されているか確認します。</p> <pre><code class="bash">> git config --list ## 略 credential.helper=manager ## 略 </code></pre> <p>今回は Windows PC なので <code>manager</code> は「Git Credential Manager for Windows」を指すことになります。</p> <p>また、検索すると <code>git config --show-origin --get credential.helper</code> のコマンドから辿っていくこともできます。</p> <pre><code class="bash">> git config --show-origin --get credential.helper file:PATH/TO/Users/<USERNAME>/.gitconfig manager </code></pre> <p>ユーザディレクトリ直下の <code>.gitconfig</code> に情報がある、と出ます。</p> <pre><code class="gitconfig">[credential] helper = manager </code></pre> <p><code>.gitconfig</code> を見ると、こちらも <code>manager</code> になっていることが確認できます。</p> <p>上述より「Git Credential Manager for Windows」であることが分かったので、次にその情報を確認します。</p> <p>「コントロールパネル」→「ユーザーアカウント」→「資格情報の管理」を開き、「Windows 資格情報」をクリックします。</p> <p>この中に Git 関連の資格情報も含まれています。……が、特に怪しい情報はなし。</p> <p>Git の認証情報の管理の仕方は分かりましたが、今回は原因究明には至りませんでした。</p> <h3 id="追記"><a href="#%E8%BF%BD%E8%A8%98">追記</a></h3> <p>その後、 SourceTree で開いているリポジトリを一つずつ調べていった結果、ユーザ名をコピペミスで間違えていたリポジトリを発見しました。</p> <p>これが原因 (開きっ放しにしているリポジトリのリモートリポジトリに該当するユーザ名が SorceTree で管理されていない → AskPass.exe でエラーが多発(or 認証画面ダイアログが表示されては一瞬で消えるを繰り返す)) な気がしてきました。</p> <p>ユーザ名のミスを修正して、またこれで様子見にしたいと思います。</p> <h3 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h3> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://dev.classmethod.jp/articles/credential-helper-resolves-codecommit-error/">gitのcredential.helperを理解してCodeCommitの403エラーを回避してみた | DevelopersIO</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://www.zunouissiki.com/entry/git-credential-manager-for-windows/">「Git Credential Manager for Windows」が何度も聞かれないように認証設定しよう! | 頭脳一式</a></li> </ul> arm-band tag:crieit.net,2005:PublicArticle/16744 2021-03-13T23:39:32+09:00 2021-03-13T23:39:32+09:00 https://crieit.net/posts/askpass-error-from-sourcetree-2-20210306 Askpass.exe の「アプリケーションを正しく起動できませんでした」というエラーへの対処 (アカウント追加編) <p>ある日突然 Askpass.exe から「アプリケーションを正しく起動できませんでした」というエラーが表示されるようになってしまったため対処の2点目。アカウントがいくつか足りないので設定し直します。</p> <p>今回足りないアカウントは GitLab EE のアカウントです。</p> <p>SourceTree の「ツール」→「オプション」→「認証」に進み、「追加」をクリック。</p> <p><a href="https://crieit.now.sh/upload_images/8f0f468564f618e220ce3e7095dfb1576040f5b1c47ab.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8f0f468564f618e220ce3e7095dfb1576040f5b1c47ab.jpg?mw=700" alt="「ホスティングアカウントを設定」ダイアログ" /></a></p> <p>ホスティングアカウントを設定」ダイアログが開いたら、「ホスティングサービス」から「GitLab EE」を選択し、「ホスト URL」を入力します。 Credentials の「認証」は「Personal Access Token」しか選べないのでそのままで、続いて「Personal Access token を再読み込み」をクリックします。</p> <p><a href="https://crieit.now.sh/upload_images/265da3c88157e18cbd6601db8bfa7e976040f5be4830e.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/265da3c88157e18cbd6601db8bfa7e976040f5be4830e.jpg?mw=700" alt="Personal Access Token の認証ダイアログ" /></a></p> <p>すると Personal Access Token の認証ダイアログが開きます。「ユーザー名」は自分のユーザー名を入れます。</p> <p>問題は「パスワード」。これは通常のパスワード<strong>ではなく</strong>、上述の Personal Access Token を入力します。</p> <p>そこで GitLab にログイン。</p> <p>ユーザーのアバターアイコンからメニューを開き、「設定」画面を開きます。続いてサイドバーから「アクセストークン」へ。</p> <p><a href="https://crieit.now.sh/upload_images/6d940822318822e14ffbd44a59b3d63a6040f5c97ec12.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6d940822318822e14ffbd44a59b3d63a6040f5c97ec12.jpg?mw=700" alt="GitLab の Personal Access Token 発行画面" /></a></p> <p>Personal Access Token 発行画面をひらいたら、「Scopes」の中で「api」を選択し、「Create personal access token」ボタンをクリック。</p> <p><a href="https://crieit.now.sh/upload_images/3014fe5f05a74ebaf7de8d2cdbd41bf76040f5d5a6138.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3014fe5f05a74ebaf7de8d2cdbd41bf76040f5d5a6138.jpg?mw=700" alt="発行された GitLab の Personal Access Token" /></a></p> <p>すると、「Your New Personal Access Token」が表示されます。この Personal Access Token はテキストボックスのミュートテキストの通り、この画面でしかアクセスできず、一度他のページに遷移したり閉じたりすると<strong>二度とアクセスできません</strong> ( Revoke して再発行になる)。必ず控えておきましょう。</p> <p><a href="https://crieit.now.sh/upload_images/af153eb91208ad322e0d5943b6e5a4066040f5e003bb8.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/af153eb91208ad322e0d5943b6e5a4066040f5e003bb8.jpg?mw=700" alt="発行された GitLab の Personal Access Token" /></a></p> <p>発行が完了すると、発行画面の下に一覧で表示されます。ご覧の通り「Revoke」しか表示されておらず、先程のページで表示されていたトークンへはアクセスできません。</p> <p>さて、先程の Personal Access Token を開きっ放しにしていた SourceTree の認証ダイアログの「パスワード」にコピペして「OK」をクリックします。</p> <p><a href="https://crieit.now.sh/upload_images/f85f66fe1e5d3ed5213887bf00ab1cbb6040f5eaa86f8.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f85f66fe1e5d3ed5213887bf00ab1cbb6040f5eaa86f8.jpg?mw=700" alt="Personal Access Token が認証された" /></a></p> <p>すると、認証が成功し、「ホスティングアカウントを設定」画面で「✅認証に成功」が表示されるようになります。これでOKです。</p> <h2 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h2> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/TakuyaHara/items/0424e188f5073aa362a5">GitLabアカウントをSourceTreeに登録する方法 - Qiita</a></li> </ul> arm-band tag:crieit.net,2005:PublicArticle/16717 2021-03-05T00:02:35+09:00 2021-03-05T00:02:35+09:00 https://crieit.net/posts/askpass-error-from-sourcetree-1-20210305 Askpass.exe の「アプリケーションを正しく起動できませんでした」というエラーへの対処 (仮) <h2 id="現象"><a href="#%E7%8F%BE%E8%B1%A1">現象</a></h2> <p>ある日突然 Askpass.exe から「アプリケーションを正しく起動できませんでした」というエラーが表示されるようになってしまいました。</p> <p><a href="https://crieit.now.sh/upload_images/9ca7059fe935c4deb754e905c144ef9f6040f34619435.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9ca7059fe935c4deb754e905c144ef9f6040f34619435.jpg?mw=700" alt="Askpass.exe からのエラーダイアログ" /></a></p> <blockquote> <p>Askpass.exe - アプリケーション エラー</p> <p>アプリケーションを正しく起動できませんでした (0xc0000142)。[OK] をクリックしてアプリケーションを閉じてください。</p> </blockquote> <p>しかも一度だけではなく、放置していると同じエラーダイアログが溜まって数~十数回「OK」をクリックするはめになります。</p> <p>発生するタイミングはランダムのように見えるため、文字入力やコーディング中にエラーダイアログが起動して入力を妨げられることも……。</p> <p>さすがに作業しづらいので、対処することにしました。</p> <h2 id="調査"><a href="#%E8%AA%BF%E6%9F%BB">調査</a></h2> <p>検索すると Askpass.exe はどうも SourceTree のコンポーネントで Git で使用する SSH の鍵を管理する部分に関する GUI を担うようです。</p> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://community.atlassian.com/t5/SourceTree-questions/What-is-askpass-exe/qaq-p/134504">Solved: What is askpass.exe?</a></li> </ul> <p>関連する場所としては、 SourceTree の「ツール」→「オプション」→「認証」のところの設定周りでしょうか……。</p> <p>以上より、 SourceTree 周りの環境を整理すると以下の通りです。</p> <ul> <li>OS: Windows 10 環境</li> <li>Git: SourceTree が持っている Git ではなく、システムインストールの Git を使用。バージョンは <code>2.30.0.windows</code> 。</li> <li>SourceTree: <code>3.4.2.0</code></li> </ul> <h2 id="対処1 (失敗)"><a href="#%E5%AF%BE%E5%87%A61+%28%E5%A4%B1%E6%95%97%29">対処1 (失敗)</a></h2> <p>Askpass.exe 自体は Gitクライアント にも類似のファイル (<code>git-askpass.exe</code>) が存在していた (<code>PATH\TO\INSTALLED_DIRECTORY\Git\mingw64\libexec\git-core</code>下)のと、 Git のマイナーバージョンが上がっていたので以下のようにしました。</p> <ul> <li>Gitクライアント本体: 上書きインストールによるアップデート (<code>2.30.0.windows</code> → <code>2.30.0.windows.2</code>)</li> <li>SourceTree: コントロールパネルからアンインストール→再度インストール (<code>3.4.2.0</code>)</li> </ul> <p>が、改善せず。 SourceTree にいたっては設定などの情報が残っていたため、アンインストールで綺麗に消えていたわけでもなさそう……。</p> <h2 id="対処2"><a href="#%E5%AF%BE%E5%87%A62">対処2</a></h2> <p>そこで今度は SourceTree 関連のファイルを削除することにしました。</p> <ol> <li>SourceTree の「ツール」→「オプション」→「認証」で保存されているアカウント情報を手動で全て削除</li> <li>SourceTree を閉じる</li> <li>コントロールパネルから SourceTree をアンインストール</li> <li><code>PATO\TO\Users\<USERNAME>\AppData\Local\Atlassian</code> 配下のファイルを別フォルダにバックアップ</li> <li><code>PATO\TO\Users\<USERNAME>\AppData\Local\Atlassian</code> 配下のファイルを全部削除 (過去バージョンのものも含めて) <ul> <li><a target="_blank" rel="nofollow noopener" href="https://confluence.atlassian.com/sourcetreekb/how-to-wipe-sourcetree-preferences-412484640.html">SourceTree のナレッジベース</a> では個人設定情報をリフレッシュさせるには以下の手順で良いそうですが、今回はきれいさっぱりにしたかったためあえて全部削除しました <ol> <li>SourceTree を閉じる</li> <li><code>PATO\TO\Users\<USERNAME>\AppData\Local\Atlassian\SourceTree\</code> と <code>PATO\TO\Users\<USERNAME>\AppData\Local\Atlassian\SourceTree.exe<ランダム文字列>\<バージョン番号(今回は 3.4.2.0)>\</code> フォルダのファイルをバックアップ</li> <li><code>PATO\TO\Users\<USERNAME>\AppData\Local\Atlassian\SourceTree\</code>下 の以下の3つのファイルを削除 <ul> <li><code>bookmarks.xml</code></li> <li><code>opentabs.xml</code></li> <li><code>userhosts</code></li> </ul></li> <li><code>PATO\TO\Users\<USERNAME>\AppData\Local\Atlassian\SourceTree.exe<ランダム文字列>\<バージョン番号(今回は 3.4.2.0)>\</code>下 の <code>user.config</code> ファイルを削除</li> <li>SourceTree を起動し、正常に動作するか確認する</li> </ol></li> </ul></li> <li>SourceTree を再度インストール <ul> <li>Bitbucket or Bitbucket Server の選択: スキップ</li> <li>オプション: <ul> <li>Mercurial もインストール</li> <li>改行の自動設定: チェックを外す (Git本体 側で LF 統一するようにしているため)</li> <li>ユーザ名・メールアドレス: Git本体に記憶されている情報を使用</li> <li>SSH鍵の読み込み: 「いいえ」でスキップ</li> </ul></li> <li>インストール完了後: 「ツール」→「オプション」→「Git バージョン」で「System」となっていることを確認 (SourceTree 本体で持っている Git ではなく、インストール済みの Git を使用)</li> </ul></li> </ol> <p>これでSourceTree の「ツール」→「オプション」→「認証」を開くと……なぜかいくつかのアカウント情報が記録されていました。おそらく Git 本体に記録されていた情報だと思います詳細は不明……。</p> <p>ただし、全てではないので改めて追加する必要があります。それについては別途設定するということで、ひとまず今回はこれで様子見とします。</p> <h2 id="様子見の結果"><a href="#%E6%A7%98%E5%AD%90%E8%A6%8B%E3%81%AE%E7%B5%90%E6%9E%9C">様子見の結果</a></h2> <p>様子を見ていた結果ですが、冒頭のエラーは表示されなくなりました。</p> <p>代わりに、同じようなタイミングで認証のダイアログが表示されるのですが、一瞬で閉じられるため今のところさほど影響は出ていません。</p> <p>一旦解決、といったところでしょうか。</p> <h2 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h2> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://community.atlassian.com/t5/SourceTree-questions/What-is-askpass-exe/qaq-p/134504">Solved: What is askpass.exe?</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/BlueTone/items/bbafed96520c99c19d16">SourceTree3.0.6でエラー:Askpass.exe: No such file or directory - Qiita</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/yosida001/items/21365a174facf76f1209">SourceTree 3.0.6にアップデートしたら、リモートからの操作ができなくなったので解決した忘備録 - Qiita</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://confluence.atlassian.com/sourcetreekb/how-to-wipe-sourcetree-preferences-412484640.html">How to Wipe SourceTree Preferences | Sourcetree | Atlassian Documentation</a></li> </ul> arm-band