![与 ssh 混淆-权限被拒绝(公钥)](https://linux22.com/image/1557495/%E4%B8%8E%20ssh%20%E6%B7%B7%E6%B7%86-%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%EF%BC%88%E5%85%AC%E9%92%A5%EF%BC%89.png)
如何在 Debian 上正确设置 open-ssh。我已一切正常 - 使用身份验证密钥登录(PasswordAuthentication 设置为否),然后突然出现权限被拒绝(公钥)。所以我卸载了服务器和远程客户端上的 ssh。然后我陷入了困境——重新安装无法在 root 或用户级别设置 .ssh 目录。
历史:
我以 root 身份在我的服务器上安装了 open-ssh 我以 root 身份在我的远程客户端电脑上安装了 open-ssh
我以 root 身份在服务器上生成了公钥和私钥。
我以 root 身份在远程 PC 上生成了公钥和私钥
我以用户身份在服务器上的 .ssh 目录中创建了一个授权密钥文件,并将其复制到我的远程电脑的公钥中
我修改了我的 ssh 配置文件,不允许密码登录
我的问题:
您必须始终以 root 身份安装 open-ssh 吗?
如果是这样,那么这是否会传播给所有用户并授予他们接受 ssh 连接的权限?
您是以 root 身份还是以用户级别创建授权密钥文件?
我卸载了所有东西*,apt-get purge openssh-client
但到处都留下了 .ssh 目录。这是 Linux 上的惯例吗?手动删除这些剩余目录可以吗?
干杯
答案1
你的理解似乎缺少了一些要素——
实际上,您确实需要以 root 身份安装 open ssh - 默认情况下,它在端口 22 上通信,该端口仅限于 root。您可能可以将其设置为在 1024 以上的非标准端口(通常为 2222)上应答。
ssh 不会“向下传播” - 它作为守护进程运行。但是,它通常会在用户主目录中查找 ~user/.ssh/authorised_keys
您通常会为系统上的每个用户创建一个authorised_keys文件。请注意,SSH 服务器也有自己的密钥,通常可以在 /etc/sshd 中找到
如果除了 SSH 内容之外没有其他内容您不需要,那么手动删除主目录中的 .ssh 密钥是安全的。保留它们也是可以的,因为客户端和服务器是两个不同的东西,但在某些情况下两者都使用相同的目录。
密钥处理 -
您通常会在客户端上创建私钥和公钥,然后将公钥添加到服务器的 ~user/.ssh/authorized_keys 中 - 您不需要在服务器上为用户生成私钥或公钥 - 除非您还希望该用户将服务器用作 ssh 客户端。
密钥通常归其所属用户所有,私钥的权限为 600。您也可以让 root 拥有密钥,但这将阻止用户更改它们。