Closed ktooi closed 1 year ago
前に調べた感想では、Windows Helloがらみでややこしいなぁって感じでした・・・ USB-HIDでLowLevelなアクセスも可能なようですが制限があるようです
安易な方法では、ないですが最近のWindowsでは、opensshがインストールされているようなので ssh-agentサービスを使用すれば可能かもしれません
コントロール パネル\すべてのコントロール パネル項目\Windows ツール\サービス サービス名:ssh-agent 表示名:OpenSSH Authentication Agent スタートアップの種類:自動 サービスの状態:開始
Power Shellやコマンドプロンプトで・・・ ssh-add ecdsa-sk ssh-add -L
で公開鍵が表示されれば使えるかもしれません・・・(FIDOを持っていないので確認できません)
RLoginでは、オプション・プロトコル・認証キーでagentサービスが動いてキーが登録されていれば Wagentの鍵として使用を選択することが出来ます
ご連絡が大変遅くなり申し訳ございません。
既に調査頂いていたのですね。
ssh-agent を利用してでも FIDO で認証できれば問題ないです。 しかしながら、私の環境ではうまく連携させることができませんでした。
私の環境といたしましては、下記のようになっています。
Edition Windows 11 Pro
Version 22H2
Installed on 10/8/2022
OS build 22621.1413
Experience Windows Feature Experience Pack 1000.22639.1000.0
winget install "openssh beta"
にてインストールしたものです: https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSHssh-add -L
にて登録済み ecdsa-sk の公開鍵が出力させることを確認いたしました。
ssh-agent も下記の通り動作済みです。
PS C:\WINDOWS\system32> Get-WmiObject win32_service | ?{$_.Name -like 'ssh-agent*'} | select Name, DisplayName, State, PathName
Name DisplayName State PathName
---- ----------- ----- --------
ssh-agent OpenSSH Authentication Agent Running "C:\Program Files\OpenSSH\ssh-agent.exe"
PS C:\WINDOWS\system32>
※ おそらく、デフォルトでは C:\Windows\System32\OpenSSH\ssh-agent.exe
が実行されるかと思うのですが、 openssh beta
によってインストールされたバイナリが実行されているようです。
Windows Terminal から OpenSSH の ssh クライアントを実行したところ、 FIDO で認証することができました。最初のコメントに添付いたしました画像がその時のものです。
この状態で Rlogin のオプション・プロトコル・認証キーを表示したところ、キーの一覧には何も表示されませんでした。
また、下記のように別途鍵を生成し、再度 Rlogin のオプション・プロトコル・認証キーを確認したところ、後から作成した鍵のみが一覧に表示されました。
> ssh-keygen.exe -t ed25519 -f id_ed25519_test
> ssh-add id_ed25519_test
> ssh-add -L
# FIDO 用の鍵と、別途生成した鍵の両方が表示されることを確認。
御確認有り難うございます。
残念ですね・・・鍵自体は、ecdsaやed25519と同じなのでいけると思いましたが別の名前のようですね。 少し調べてみましたが、openssh独自の名前で仕様がすこし拡張されているようです。
agentを利用するなら鍵の仕様に左右されない利用方法があるかもしれないので試してみようかと思います。
お返事と調査ありがとうございます。
こちらでも何か確認できることがあればご協力させていただければと存じます。
試しに非対応の鍵でもagentでは、利用できるようにしてみました。 調査いただければ幸いです。
早速のご対応ありがとうございます。 確認したところ、 agent 経由で FIDO キーを利用してログインすることができました!
ただ、 FIDO キーを利用した agent 転送の認証がうまくいかないようです。 ご確認いただけないでしょうか?
こちらで確認した内容は次の通りです。
> ssh ktooi@192.0.2.1 -A # エージェント転送を有効にして作業端末から踏み台サーバにログイン。(FIDO キーを利用してログイン。)
> ssh 192.0.2.200 # 踏み台サーバからフロントサーバへ、エージェント転送で作業端末の FIDO を利用してログイン。
エージェント転送を有効にする
にチェックが入っている事ed25519
タイプの鍵であれば、エージェント転送で踏み台サーバからフロントサーバにログインできる事# Rlogin の Server Select から踏み台サーバにログイン。(FIDO キーを利用してログイン。)
$ ls $SSH_AUTH_SOCK # 踏み台サーバ上に、エージェント転送で生成されたソケットファイルが存在することを確認。
/tmp/ssh-39brbvLZHL/agent.1039778
$ ssh 192.0.2.200 # 踏み台サーバからフロントサーバへ、エージェント転送で作業端末の FIDO を利用してログイン。 ← ここで `Permission denied (publickey).`
何卒、よろしくお願いいたします。
ご確認有り難うございます。 内部のagentで鍵の型チェックを行っていました。 早速、修正しました。
ご対応ありがとうございます。 FIDO キーを利用したエージェント転送が使えることを確認致しました。
ちょっと気になったのですが、エージェント転送で FIDO キーを利用すると、 Touch your security key.
のウィンドウ (本 issue 最初のコメントの2枚目) が Rlogin の裏に隠れ、 Rlogin のウィンドウからは応答がなくなるので一見すると Rlogin がフリーズしたように感じます。
FIDO キーにタッチすれば問題なく動くので、本質的には問題無いのですが、 Touch your security key.
のウィンドウが Rlogin の前面に出せれば良いように思いました。
当初本 issue で解決したかった問題は解決したので、上の件の対応に時間が掛りそうなら上の件は別途 issue を起票させていただくのが良いかなと思うのですがいかがでしょうか? エージェント転送で FIDO キー等を利用するケースは見たところ少なそうな気もするので、対応しないでも問題ないかなと思います。
ご確認のほど、よろしくお願いします。
ご確認有り難うございます。 内部agentの動作をスレッドにしてみました。 改善するかどうか解りませんがフリーズしたようには、ならないと思います。
ご対応ありがとうございます。 エージェント転送の際の挙動が改善されました!
Touch your security key.
のウィンドウが前面に表示されるようになりました。Touch your security key.
のウィンドウが表示されている間、 Rlogin が応答なし状態にならなくなりました。他、特に気になるような挙動等も見受けられません。 お忙しいところ何度もご対応頂きましてありがとうございました。
本 Issue は Close させて頂いてよろしいでしょうか? 次期正式版リリースまで Open になりますか?
ecdsa-sk
及びed25519-sk
タイプの認証機能のサポートをお願いできないでしょうか。FIDO/U2F ハードウェアセキュリティキーを利用して SSH 認証をしたいと考えています。 上記タイプの鍵を Rlogin で指定すると、 SSH ログイン試行時にログインパスフレーズ入力画面が出力され、セキュリティキーの読み込みが行われません。
参考までに、 Windows 版の OpenSSH (Beta 版) では下記のように表示されます。
何卒、よろしくお願いいたします。