【发布时间】:2020-03-08 08:48:32
【问题描述】:
我正在尝试使用 WinSCP 和 PowerShell 连接到 SFTP 服务器并遇到以下问题
错误:SSH 主机密钥指纹“ssh-rsa 2048 ABCDE+I9v1+pLxkhZkod6yAbEh0o7a8wlSsI+ABCDEF”与模式不匹配 /((ssh-rsa|ssh-dss|ssh-ed25519|ecdsa-sha2-nistp(256|384|521))(|-))?(\d+)?(([0-9a-f]{2 }(:|-)){15}[0-9a-f]{2}|[0-9a-zA-Z+/]{43}=)(;((ssh-rsa|ssh-dss|ssh- ed25519|ecdsa-sha2-nistp(256|384|521))(|-))?(\d+)?(([0-9a-f]{2}(:|-)){15}[0- af]{2}|[0-9a-zA-Z+/]{43}=))*/
引用字符串中的 ABCDE 和 ABCDEF 只是我掩盖了指纹。
我已经检查了现有的 SO 响应( SSH host key fingerprint ... does not match pattern ... when using WinSCP .NET assembly in C# to download files, SSH host key fingerprint does not match pattern C# WinSCP) 但它们不适用。
我对正则表达式的了解很模糊,看起来它应该适合我,所以我希望我错过了一些简单的东西。我有'ssh-rsa',然后是空格(|-),然后是数字后跟空格(\d+),然后是匹配 [0-9a-zA-Z+/]{43} 的 43 个字符(它是事实上,我有一个 43 个字符的字符串,这让我觉得我有一个正确的指纹,只是错过了一些语法琐事)。整个模式的后半部分只是前半部分的重复,我假设是一个可选的,所以我不知道什么不被接受?
【问题讨论】:
标签: regex ssh fingerprint winscp winscp-net