我使用 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 连接时,您不必输入密码。