你如何为另一个用户创build一个ssh密钥?

我正在尝试为另一个用户创build一个ssh密钥。 我以root身份login。 我可以只编辑由ssh-keygen生成的文件,并将root改为我想要的用户?

你可以用ssh-keygen做到这一点,但是请记住私钥对于用户来说是私有的,所以你应该非常小心地保证它的安全,就像用户的密码一样安全。 或者甚至更安全,因为用户不可能在第一次login时被更改。

ssh-keygen -f anything都会在当前目录下创build两个文件。 anything.pub是公钥,您可以在任何目标服务器上追加到用户的~/.ssh/authorized_keys

另一个文件,只是被称为私钥,因此应该安全地存储给用户。 默认位置是~username/.ssh/id_rsa (这里命名为id_rsa ,这是rsa键的默认值)。 请记住, .ssh目录不能被除了该用户以外的任何人读取或写入,并且该用户的主目录不能被除了该用户之外的任何人写入。 同样,私钥上的权限也必须严格:只读写用户,.ssh目录和私钥文件必须由用户拥有。

从技术上讲,你可以在任何地方储存钥匙 使用ssh -i path/to/privatekey您可以在连接时指定该位置。 同样,正确的所有权和权限是至关重要的,如果你没有正确的权利,ssh将不起作用。

SSH密钥中没有用户信息

公钥中的最后一个字段是注释 (可以通过ssh-keygen -C newcomment进行更改)。

不需要做任何特殊的事情来为另一个用户创build一个密钥,只要把它放在正确的位置并设置权限即可。

通过使用su来成为用户,并以该用户的身份运行密钥:

 [root@kvm0001 ~]# su - joeuser [joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements) Generating public/private dsa key pair. Enter file in which to save the key (/home/joeuser/.ssh/id_dsa): 

如此处所示,可以使用chmod来更改要添加SSH密钥的用户的文件夹的读取权限。

 vim /home/username/.ssh/authorized_keys 

然后,只需将该键粘贴到该文件底部的新行