
Windows 10 20H2、ビルド 19042.685
Windows 10 の組み込み OpenSSH クライアントで SSH エージェントを使用しようとしています。エージェントは次のように実行されています:
C:\Users\Daniel> Get-Service | ?{$_.Name -like '*ssh-agent*'}
Status Name DisplayName
------ ---- -----------
Running ssh-agent OpenSSH Authentication Agent
ただし、ssh-add
同じエラーがまだ発生します:
C:\Users\Daniel> ssh-add C:\Users\Daniel\.ssh\id_ed25519
Error connecting to agent: No such file or directory
何か案は?
答え1
Windows10 では、ssh-agent へのパスを環境変数として設定しているものの、フォルダー名内のスペースを処理できないことがわかりました。誰かが入力をエスケープするのを忘れたようです! (AAAAAAAAARRRRGGGGGH!)。
テストするには: (現在使用している git-bash で)
echo "$(ssh-agent)"
... 環境変数が ssh-agent をどのように見つけてアクセスするかを設定します (私の場合は愚かな設定です)。私の場合は次のようになります:
SSH_AUTH_SOCK=/d/Windows10 Temporary Files/ssh-XXXXXXX/agent.YYYYY; export SSH_AUTH_SOCK;
SSH_AGENT_PID=54456; export SSH_AGENT_PID;
echo Agent pid 54456;
...ああ、見て!誰かがフォルダーにスペースを含めることができることを忘れて、入力をエスケープしませんでした(最初の行が壊れていて、「エクスポート」コマンドが含まれています)。
その環境変数を正しく再エクスポートすると (「/d/...YYYY」を一重引用符で囲み、末尾の「;」を削除し、「export SSH_AUTH_SOCK;」の部分を削除すると)、ssh-agent が再び正常に動作するようになります。