我是普通用户

我是普通用户

我使用 ssh-keygen 创建了私钥/公钥对。我按照以下说明安装了公钥:https://help.ubuntu.com/community/SSH/OpenSSH/Keys

正如预期的那样,它不需要密码就可以工作 - 但只有以 root 身份登录时才有效。直接以 root 身份登录显然是个坏主意。

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

答案1

命令:

ssh-copy-id  username@host

如上述链接所述,在 Mac 上无法使用。因此,我以 root 身份登录,当然,密钥就是在那里安装的。

答案似乎是:如果您以用户身份登录,那么cat公钥就是该~/.ssh/authorized_keys文件的。

答案2

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

我是普通用户

只需遵循快速解决使其适用于您的远程机器。


我通过加密保护主目录

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

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

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

/etc/ssh/<username> (replace "<username>" 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 连接时,您不必输入密码。

相关内容