如何通过与给定用户关联的ssh私钥/公钥进行登录

我使用ssh-keygen创建了私钥/公钥对。 我按照https://help.ubuntu.com/community/SSH/OpenSSH/Keys中的描述安装了公共

并且它没有密码,正如预期的那样 – 但仅在登录到root时才有效。 以root身份直接登录显然是个坏主意。

但问题是,该密钥对如何与给定的用户ID关联或限制? 我不希望用户只是通过在主机上安装公钥就能在系统上登录任何帐户…

命令:

ssh-copy-id username@host 

如上面的链接中所述,不适用于mac。 因此,我以root身份登录,当然,这是安装密钥的位置。

答案似乎是:如果您以用户身份登录,则将~/.ssh/authorized_keys~/.ssh/authorized_keys文件中。

每个用户都必须将其公钥传输到其主目录中的.ssh目录。

我是普通用户

只需按照quickfix即可使其适用于您的远程计算机。


我通过主目录加密加密

(复制为https://help.ubuntu.com/community/SSH/OpenSSH/Keys )

如果您有加密的主目录,则SSH无法访问authorized_keys文件,因为它位于加密的主目录中,并且在您通过身份validation之后才可用。 因此,SSH将默认为密码身份validation。

要解决此问题,请在您家外面创建一个名为的文件夹:

 /etc/ssh/ (replace "" with your actual username). 

此目录应具有755个权限,并由用户拥有。 将authorized_keys文件移入其中。 authorized_keys文件应具有644权限并由用户拥有。

然后编辑/ etc / ssh / sshd_config并添加:

 AuthorizedKeysFile /etc/ssh/%u/authorized_keys 

最后,重启ssh:

 sudo service ssh restart 

下次使用SSH连接时,您不必输入密码。