我试图学习这个,而不是仅仅遵循指南,所以我可以推荐适当的行动,当人们问(他们这样做)。 这是我的下落。
首先,生成这样的命令:
ssh-keygen -b 2048 -t rsa -C comment -f ~/.ssh/id_rsa
然后您将密钥的公共部分推入authorized_keys2文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2
(然后chmod到600或类似)
然后将私钥下载到您的计算机(id_rsa),然后将其input到Putty中进行读取和validation。
这是正确的步骤来设置这个公共/私人身份validation密码login到SSH?
尽pipe您所描述的步骤可行,但还是有问题的。 您正在目标(远程)计算机上生成密钥对,然后将私钥文件下载到本地系统。 这里有一些你不应忽视的安全隐患:
由于您使用ssh密钥对(尝试)来解决密码validation中固有的一些问题,您通常需要这样做:
在本地系统上生成密钥对。 理想情况下,私钥将永远不会被存储在共享文件系统(例如,NFS主目录)上,并且(b)永远不会被存储在允许远程login的计算机上。
远远地发布公钥。 我把我的公钥保存在一个网站上,这样我就可以随时抓取他们。 将公钥放在您要连接的系统上相应的authorized_keys文件中。
如果你特别偏执,你可以将私钥存储在拇指驱动器上,只能使用驱动器将密钥加载到正在运行的ssh-agent 。 此时,您不再需要实际的密钥文件。
在客户端系统上生成密钥可能会更好。 您可能会得到一个更大的authorized_keys文件,但是更容易禁用一个受感染的系统。 如果您迁移服务器的私钥,则需要重新生成密钥并将其迁移到所有客户端系统。 每个客户都应该拥有自己的钥匙。
腻子使用腻子生成钥匙。 puttygen也将以正确的格式提供公钥粘贴到客户端系统中。 如果用于login访问,最好使用密码保护密钥。 可以使用Pageant或ssh-agent将未受保护的密钥保存在内存中,以便在每个连接上不需要重新input密码。
一旦您添加了一个密钥并设置了保护,您可以添加其他密钥并重置权限。 我通常使用example.pub名称从系统上传公钥,其中example是密钥所属系统的名称。
许多实现已经返回到使用authorized_keys作为密钥文件。 这个文件可以用来限制系统的密钥将被接受,强制执行命令,限制访问等等。 查看man页以获取更多详细信息。
在某些情况下,在客户端系统上使用多个密钥可能很有用。 可以完成这个操作来支持使用没有密码的密钥运行的批处理过程。
看起来不错。 许多人会做相反的方向(在本地生成密钥,然后将您的.pub上传到服务器),但都可以工作。