SSHオプションSecurityKeyProviderはコマンドラインで機能しますが、プロファイルのLinux WSLでは機能しません。 - 他のオプションも動作します。

SSHオプションSecurityKeyProviderはコマンドラインで機能しますが、プロファイルのLinux WSLでは機能しません。 - 他のオプションも動作します。

ジョブサーバーにSSHで接続しようとしていますが、このエラーにより数ヶ月間問題が発生しました。私のファイルconfig()の他のすべてのオプションは~/.ssh/config正しく機能しますが、何らかの理由でSecurityKeyProviderが機能しません。視聴する:

Host [work-server]
     HostName [work-server.work.com]
     SecurityKeyProvider /usr/local/lib/libwindowsfidobridge.so
     IdentityFile ~/.ssh/id_ecdsa_sk
     ServerAliveInterval 60
     ForwardX11Trusted no
     ForwardX11 no
     ForwardAgent no

ssh -o SecurityKeyProvider=/usr/local/lib/libwindowsfidobridge.so me@[work-server.work.com]ただし、何らかの理由でコマンドラインで実行する必要があります。 ssh me@[work-server.work.com]

答え1

(この答えで私はあなたが使用しているものを難読化しないことにしました[]

Host work-serverssh work-serverたとえば、電話するとssh me@work-server一致します。いいえまたは に電話すると一致しますssh work-server.work.comssh [email protected]

ファイルの後の内容はHostName work-server.work.com関係ありません。値は、Hostコマンドラインで使用したホスト名と一致させようとします。HostNameログインする実際のホスト名を指定し、何も一致しようとしません。

これは、あなたの設定がで使用されていないことを意味します。 「他のすべてのオプションは[...]うまく機能します」と書いていますが、これは単なる幻想です。これは、構成内の他の多くのオプションがとにかくデフォルトに設定されているためです。したがって、構成が機能するものと機能しないものとの間に差はない。デフォルトはコマンドラインで指定された名前で、正確に正しい名前を指定したために機能すると言われています。ご存じのとおり、問題は重要な違いを生み出す最初のオプションです。ssh [email protected]HostNameSecurityKeyProvider

Hostとの違いがHostName直感的でない場合は、次の例を検討してください。

Host foo
  HostName bar
  # config A here

Host baz
  HostName bar
  # config B here

ssh foobar構成 A は接続に使用され、ssh baz構成 B は接続に使用されます。barしたがって、この完全な設定は、同じホストに対して複数の事前定義された構成が必要で、呼び出し時にそれらのうちの1つを簡単に選択したい場合に便利ですsshssh barmatchもmatchでもないのでHost fooHost bazAやBも使用しません。Host bar設定ssh bar(設定Cなど)を追加して定義できます。または、barすでに存在する行の1つに追加できますHost。たとえば、最初の行を作成すると、両方ともHost foo bar設定Aを使用ssh fooします(そして到着するので接続されます)。ssh barbarHostname bar

あなたの場合はssh me@work-server.ifを使用してください。ssh work-server.work.com返品設定を使用するには、次の行work-server.work.comに追加してください。Host

Host work-server work-server.work.com
# the rest of your config here

関連情報