LoginSignup
16
11

More than 1 year has passed since last update.

Sourcetree Windows版でClone時に「エラー: The host key is not cached for this server:」というエラーになる場合の対象法

Last updated at Posted at 2023-03-21

SourcetreeをインストールしてSSHの鍵を生成してGitHubに登録、いざCloneするぞ、という時に「ソースパス/ソース URLとして正しくありません」であったりその詳細…で「エラー: The host key is not cached for this server:」というエラーが表示されてしまう方向けの記事です。

↓このようなエラーです↓
image.png

何が起きているのか

Hint
解決を急ぐ方は以下の解決方法まで読み飛ばしてOKです。

SSHは初めてアクセスするホストの場合、接続先ホストのフィンガープリントを提示して本当にアクセスしてよいか対話的に確認します。コマンドラインでgit cloneする場合にはここで y [エンター] を叩けば良いのですが、SourcetreeはGUIのため、対話的にyを叩くチャンスがなくエラーになってしまいます。
ではコマンドプロンプトからssh git@github.comを実行し、この時にyを叩いてからSoucetree側でCloneすれば良いように思いますが、この時のコマンドラインから見えているsshクライアントとSourcetreeが利用するsshクライアントが異なっているため、このアプローチもうまくいきません。

解決方法1:plink.exeを直接実行して信頼する

コマンドプロンプトから以下のようにplinkを実行し、 y [エンター] を叩きます。

%LOCALAPPDATA%\SourceTree\app-3.4.11\tools\putty\plink.exe  git@github.com

Hint
GitHubの場合の例です。接続先に合わせて適宜書き換えてください。

Hint
SourceTree 3.4.11の場合の例です。パスにバージョン値が含まれていますので、適宜書き換えてください。

解決方法2:PuTTYの代わりにOpenSSHを利用する

上部メニューからツールオプション でオプションウィンドウを開き、SSH クライアントをOpenSSHに変更します。

image.png

パスが通っているsshが接続先ホストと公開鍵認証で疎通できる状態であれば、これだけでOKです。

これからセットアップする場合はおおむね以下の手順になります。

  1. ssh クライアントをインストール(GitBash付属のもの、PowerShellのもの、MSYS2のものなど、なんでもいいです)
  2. シェルを開き、ssh-keygenを実行して鍵ペアを作ります
  3. 作った公開鍵が~/.ssh/にあるので、これをサーバに登録します(GitHubであれば https://github.com/settings/ssh/new です)
  4. ssh [server] を実行し、信頼済みホストに登録しておきます(GitHubであればssh git@github.comです)
  5. オプションウィンドウからSSH クライアントの設定SSH キーに先ほど作った鍵ペアの秘密鍵の方(拡張子が無いもの)を指定します

この状態でSourceTreeからCloneを実行すれば件のエラーは解消していると思います。

最後に

以前はYes/Noのところでダイアログボックスが表示されませんでしたっけ・・・?
接続先ホストのフィンガープリントを自力で計算してPuTTYの信頼済みホストに登録する方法も模索したのですが、PuTTYのフィンガープリントの計算方法がわからず断念しました。

16
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
11