我不明白在这个声明中的安全性:SSH没有用户名只匹配公钥到私钥匹配。 这是参考我以前的职位,我可以是用户“SVN”,但只要我有我自己的P / P键匹配。 我不是假装自己不是个人吗?
这是我以前的问题有一个有效的答案。 svn和Syncro的Linux权限
有人可以解释吗?
因此,当您使用密钥对进行身份validationlogin时,服务器将使用存储在用户主目录中的authorized_keys文件中的公钥。 正如另一个答案所说,这是在svn用户主目录,因为这是你正在使用的帐户。
除了通过使用该文件以外,密钥对不会绑定到您的ID。 或者更准确地说 – 只有通过在用户主目录中的authorized_keys文件中存在,该密钥对才与您的帐户相关联。 密钥本身没有任何东西把它与特定的账户联系起来。
您可以将该文件复制到Bob的主目录,Bob可以使用该密钥对进行login。 (假设权限设置正确)。
它有意义吗?
你连接的服务器不关心你自己的机器上有什么用户名。 也就是说,如果您的用户名在您的笔记本电脑上是“foobar”,您仍然可以在服务器上以“svn”连接。 ssh将默认使用你的用户名,所以你必须指定一个替代品,如果需要的话。
在你的情况下,我相信stream量是这样的:
foobar @ yourcomputer – > ssh – > svn @ server
在这种情况下,ssh客户机将在你的〜/ .ssh /目录(或者等同的目录)中寻找与服务器上的〜svn / .ssh / authorized_keys中的公钥匹配的私钥。 在这种情况下,如果在svn用户的authorized_key文件中有相当多的公钥,那么很多不同的用户都可以作为svn用户连接,而不必共享svn用户的密码。
或者换一种说法,你并不是“假装” 成为 SVN用户,而是成为远程服务器上的SVN用户。
就是这样:只要你有有效的证书 – 无论是密码还是私钥,你都可以以远程系统中的任何用户身份login。 为了以防万一 – 注意sshd会将您的私钥与您尝试login的用户名的授权密钥相匹配,而不是用于您自己的用户名的密钥(如果在该服务器上有)。
要求原始用户名相同将提供很less或没有安全性,据我所知,例如,如果你是源服务器的pipe理员,你可以创build任何用户名,你想要的。
SSH不做用户名只匹配公钥到私钥的匹配。
那个陈述是毫无意义的,显然是虚假的。 SSHD 需要知道你的用户名,以便它知道你的公钥在服务器上的位置。
如果你有你自己的公/私钥ssh密钥对,你可以把你的公钥给任何人。 他们可以将该密钥添加到$ HOme / .ssh / authorized_keys文件中,以便授予您访问权限的任何帐户。
当你使用ssh [email protected]
ssh会使用你存储在你正在sshing的主机上的私钥和存储在host.tld
~user/.ssh/authorized_keys
host.tld
~user/.ssh/authorized_keys
来确认你的身份。 您的公钥也可以在其他用户的authorized_keys文件中,所以ssh [email protected]
也会让你进入。