🐡
ssh-agentの鍵が使われない
問題
ローカルの鍵を使ってリモートからsshしたい.
ssn-agentの転送設定や鍵の登録を済ませた.
しかしagentは転送されているがsshしようとすると鍵を使えない.
user@remote:~$ ssh-add -l
256 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx user@local (ED25519)
user@remote:~$ ssh -vvvv git@github.com
...
debug2: get_agent_identities: ssh_agent_bind_hostkey: communication with agent failed
debug1: get_agent_identities: ssh_fetch_identitylist: communication with agent failed
...
環境
local: Windows11 + PowerShell7.3.2 + OpenSSH8.1p1
remote: ubuntu22.04.1 + OpenSSH8.9p1
解決
localのOpenSSHのバージョンを上げる.
stackoverflow に書いてあった.
原因?
OpenSSH8.9でssh-agentに手が入ったらしい.
セキュリティ的な制限らしい.
Protocol extensions are required って書いてあるけど後方互換性が無いなんてことあるんだろうか?
手順
- 古いOpenSSHを削除(なぜかコマンドラインでは削除できなかった)
Windowsの設定/アプリ/オプション機能/OpenSSH クライアント
でアンインストール - (必要なら再起動)
- 新しいOpenSSH(ベータ)をインストール
管理者権限のPowerShellでwinget install Microsoft.OpenSSH.Beta --override ADDLOCAL=Client
別のPowershellでssh -V
してバージョンが上がっていれば完了
(同じウィンドウだとsshを見つけてくれなかった)
確認
remoteにagentが転送されていることを確認したうえでssh
する.
user@remote:~$ ssh-add -l
256 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx user@local (ED25519)
user@remote:~$ ssh git@github.com
PTY allocation request failed on channel 0
Hi user! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
感想
WindowsUpdateで対応してほしい...
Discussion