我们有一个Linux (Ubuntu,但这不重要),比如somemachine.example.com,还有一个可以访问该机器的用户,someuser。
通过为someuser显式提供密码,我可以将SSH输入到机器中,如下所示:
ssh someuser@somemachine.example.com
Password: *****...or通过提供PEM文件(公钥):
ssh -i ~/path/to/somemachine.pem someuser@somemachine.example.com今天,我不得不在该框中更改someuser的密码(使用passwd命令),并对我不必也为该用户重新生成新的键盘(例如,新的PEM文件)感到有点惊讶。
我在想:为什么?someuser的S密码与公钥/私钥之间是否根本没有任何联系?如果是,那么Linux是否为每个用户维护一组凭证,既可以是密码,也可以是公钥? Linux如何将密钥和密码与特定用户联系起来?
发布于 2016-09-15 00:46:32
ssh密钥和登录密码存储在几乎任何类似Unix的系统上的不同位置。没有理由(除了ssh之前30年的历史),这两个人不可能使用相同的存储。但我们现在拥有的是独立的,分散的尝试将凭证的集合存储在关键管理器中。
通常,用户的ssh信息在$HOME/.ssh中,而登录信息在/etc/passwd、/etc/shadow**/、/etc/group和/etc/gshadow*中。
密钥管理器可以根据需要提供密码(或类似信息)来组合这些信息。但这是例外,而不是规则。
为了不推荐这种或那种方式,我在SnareWorks工作了一段时间。如果你在谷歌上搜索,它会在2000年左右出现在现场。它收集各种应用程序(或远程系统)的凭据,并将集合与用户关联。
https://unix.stackexchange.com/questions/309968
复制相似问题