使用 ssh 共享公钥

jtn*_*ire 5 encryption ssh ssh-keys

是否有可能以某种方式设置一个不需要用户名、密码或证书即可登录的 ssh 服务器?如果这是不可能的,如果我给所有客户相同的公钥,每个连接都会单独加密吗?(即用户A无法解密用户B连接的payload)

我希望提供对单个程序的访问权限,该程序将提示输入用户名和密码。

加密是必不可少的,用户不能互相窥探

谢谢

rad*_*ius 10

我认为您不能删除 SSH 的身份验证部分,因为您总是需要一个用户名才能打开会话,但您可以设置一个空白密码并PermitEmptyPasswords在您的 sshd 配置中设置为 yes。
但这并不是很安全,使用密钥身份验证更好。

如果你给你的客户一个公钥,这意味着他们可以允许你连接到他们的 ssh 服务器,而不是你的。
我认为您希望客户连接到您的 ssh 服务器。在这种情况下,客户需要向您提供他们的公钥,您将允许他们连接。如果所有客户都使用相同的公钥连接到您的 ssh 服务器,则意味着所有客户都使用相同的私钥,这不是一个选项(提供私钥不是您的角色,不应共享私钥) )

关于加密和窥探,加密是使用会话密钥而不是公钥/私钥完成的,而是使用公钥/私钥 ssh 交换会话密钥。
因此,如果您的所有客户都使用相同的私钥,如果他们从一开始就监听会话,他们可以解密会话,如果他们在会话密钥交换后监听会话,则解密会话将非常困难。

一篇关于 ssh 工作原理的好文章http://www.eng.cam.ac.uk/help/jpmg/ssh/ssh-detail.html

  • +1,从中得到什么:设置SSH,让客户生成一个公共/私人对并提供他们的公共密钥,在authorized_keys中弹出这些公共密钥。另外,Putty 提供了生成密钥对的程序;不要使用一些随机的在线网页来生成密钥对。PuttyGen 链接:http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe (2认同)