2016-08-02 :-(
_ [WinSCP][ssh][指紋][fingerprint]WinSCP .NET Assembly が要求する指紋の形式
WinSCP .NET Assembly and COM Library :: WinSCP
よく忘れるので。
WinSCP が要求するのはこの形式。間違った形式を渡すと例外で WinSCP が受け入れる形式を正規表現で飛ばしてくれる。
Error: System.ArgumentException: SSH host key fingerprint "2048 MD5:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" does not match pattern /((ssh-rsa|ssh-dss|ssh-ed25519|ecdsa-sha2-nistp(256|384|521))( |-))?(\d+ )?([0-9a-f]{2}(:|-)){15}[0-9a-f]{2}(;((ssh-rsa|ssh-dss|ssh-ed25519|ecdsa-sha2-nistp(256|384|521))( |-))?(\d+ )?([0-9a-f]{2}(:|-)){15}[0-9a-f]{2})*/
さて、実際に普通に指紋を印字すると以下のような形式となる。WinSCP から要求されるのはホストの公開鍵の md5 ハッシュ。自分の公開鍵の指紋だと認証に失敗する。
% ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_rsa_key 2048 MD5:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@example.jp (RSA)
この指紋を WinSCP で使うには md5 ハッシュをコピペして以下のようにすればよい。
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx: