我正在使用 Windows PuTTY 访问运行 Ubuntu Server 14.04 的 Linux 服务器
我已成功创建带有密码的 RSA 密钥,登录并将其放入~/.ssh/authorized_keys
。PuTTY 已配置为使用此私钥。
SSH 握手在第一次尝试时就成功了,服务器要求我输入 RSA 密码。我输入了密码,他说密码错误。
我的密码包含数字、特殊字符和德语变音符 (ÄÖÜ)(我是德国人,这意味着我的键盘上有这些键)
我怀疑它无法传输我的 Umlaute(变异元音),或者 Linux 和/或 SSH 不支持这些字符
有人知道我能做些什么吗?
我希望密码中包含数字、货币字符和变音符,因为它们被认为非常安全。
我的密码不是很长 - 也许 SSH 有最低字符数?
(它很短,因为我想快速输入,同时由于字符稀有而难以遭受暴力攻击)
我需要以特殊方式配置 SSH 和/或 Linux 吗?我的 Ubuntu 服务器完全是英文的,但服务器不应该对这些字符感到惊讶,因为我在设置时将键盘布局设置为德语,并且它运行良好。
我希望这些信息足够了。
如果你们知道解决办法就太好了。
答案1
密码中不一定禁止使用基本可打印 US-ASCII 集以外的字符,但它们是个坏主意,因为您很容易遇到编码问题。以字符“Ü”(大写 U 带变音符号)为例——在 UTF-8 编码中C3 9C
(十六进制)...或者它可能被编码为普通的“U”加上组合变音符号(十六进制55 CC 88
),或者在 ISO 8859-1(十六进制DC
)中或在CP437(十六进制9A
)或 ...
如果不同的程序使用不同的编码,您可以在其中输入“相同”的密码,并得到两个(或更多)不同的编码,因此就密码/密码短语/等检查系统而言,它们是不一样的。在您的情况下,这听起来只是解码私钥的密码短语,所以这只是一个 ssh 和 PuTTY 是否使用相同编码的问题——如果它实际上是远程系统的密码,那么您还必须担心各种程序会尝试将其转换为“兼容性”,并可能以更奇怪的方式搞砸事情。
我建议坚持使用基本可打印 ASCII 集中的字符 —— 是的,添加外部字符会使它们更难破解,但也会使您更难使用它们,在我看来这不是一个好的权衡。