我的 Ubuntu 机器有一个有趣的问题,我觉得这可能只是我的一个配置问题,但希望你们中的一个向导可以帮助我解决这个问题。
我有一个 Ubuntu 18.04.4 安装,用于我和朋友的视频游戏服务器。目前,我在上面运行着 Minecraft 和 Terraria。这些服务器在它们自己的用户中运行(我有一个 Minecraft 用户和一个 Terraria 用户)以保持分离。此外,我有一个特权用户,可以使用 sudo 访问 juuuust 的所有内容。
正如标题所示,我在我的服务器上设置了基于密钥的身份验证。我关注了一个关于如何设置它的 YouTube 视频,该视频指导我在我的主用户的主目录中创建一个“.ssh”目录,并使用它来存储授权密钥。.ssh 文件夹有 700 个权限,里面的其余文件是 600 个。做到了,bippy boppity boom!有用!
因此,如果我在我的服务器中打开 putty 和 ssh,只要我选择特权用户作为我希望登录的用户,它就可以正常工作。如果我尝试以 Minecraft 或 Terraria 用户身份登录,没有骰子,服务器会拒绝密钥。我尝试为 Minecraft 用户创建相同的 .ssh/authorized_keys 文件夹来测试我的理论,即我需要在 Minecraft 用户的主目录中也拥有公钥才能使其工作。还是没有骰子。(这是我的问题,下面的答案解决了。这个文件中的密钥不是一行)事实上,对于其他任何一个用户来说,实际上都没有一个典型的主目录。
特权用户在 /home/USER/ 中有一个主文件夹,但其他用户没有,我觉得这可能是我的问题的根源,但我不确定如何在不破坏安装的情况下为我的用户创建这个目录在它们上运行的服务器。
这就是我在这里所做的事情,如果你们中的任何人对为什么我的 ssh 不适用于那些我很想听的用户有洞察力。提前致谢!
通过键入查看您当前的用户
cat /etc/passwd
。每行的参数用冒号分隔:倒数第二个参数是用户主目录。最后一个参数是用户 shell(或者它可能类似于nologin
或者false
如果用户已配置为不允许登录)。您可以通过
useradd
和来添加用户usermod
来修改用户。查看这些命令的手册页。有时,当安装程序运行时,它可能会添加一个用户,但该用户不打算用于登录(例如出于安全原因),因此您可能需要修改主目录或 shell,或者只是添加其他不同的用户以允许远程登录. 这取决于您想要做什么,或者您想要授予什么用户或访问权限。
您正在尝试做的事情应该可以工作,因此密钥文件可能有问题或文件所有权权限有问题。
检查源机器的 SINGLE 行
id_rsa.pub
是否在目标机器~/.ssh/authorized_keys
文件上。仔细检查是否剪切/粘贴了此行,它没有粘贴为多行。它是单行。检查目标用户(您的 Minecraft 或 Terraria 用户)是否有权访问 .ssh 目录和 authorized_keys 文件。
如果这不起作用,您是否确认您可以在没有授权密钥的情况下远程登录这些用户?例如,通过提供密码?