【问题标题】:Getting Permission denied (publickey) [closed]获得许可被拒绝(公钥)[关闭]
【发布时间】:2018-07-15 16:22:38
【问题描述】:

我正在尝试对 Google Cloud 实例执行 ssh。我可以对我的用户名执行 ssh(假设我的电脑用户名是 apple,然后我可以访问苹果用户名)但是当我尝试访问不同的用户名时实例(让我们说信息)然后它给我“权限被拒绝(公钥)”。

我是 linux 的新手,请帮助我如何从我的系统访问不同的用户名目录。

【问题讨论】:

标签: linux ssh


【解决方案1】:

也就是说,Linux 用户有自己的用户区,通常称为 Home。就像 Windows 用户或 Mac 用户一样,每个用户都是独立的,一个用户内的属性(文件/文件夹)不能直接从另一个用户访问,除非将该任务委派给超级用户。在这种情况下,您可以在命令前面使用sudo 来告诉系统您有权使用超级用户的权限访问该资源。

要回答您的问题,您需要将您的公钥添加到您希望通过 SSH 访问的所有用户(ssh info@IPssh apple@IP)的 .ssh/authorized_keys 文件中。


但是,还有另一种方法,而不是将您的公钥添加到属于 sudoers 组或 root 用户的用户,否则(不建议将 root 用户暴露给外部明显的安全原因)。然后您只需简单地通过 SSH 连接到该用户并运行 sudo su - USERNAME 其中 USERNAME 是系统中除当前用户之外的任何用户(默认为 root 因此通过运行 sudo su - 您将假设为 root用户)。

仅供参考,中间的 - 告诉系统将当前目录设置为该用户的主目录,如果您将 - 留在外面,您仍然会成为该用户,但您的当前目录仍与您运行命令的位置相同。 这将要求您在第一次运行带有sudo 前缀的命令时输入用户密码,以验证您不是您的朋友或黑客。您可以通过使用sudo visudo 命令(visudo for root 用户)更改 Sudoers 文件来阻止此操作,这将为您提供一个定义权限的文件。您可以通过将%sudo 开头的行替换为以下内容来允许 Sudoers 组中的所有用户:

%sudo   ALL=(ALL) NOPASSWD:ALL

或者您可以在#用户权限规范

部分下方添加一行
USERNAME   ALL=(ALL) NOPASSWD:ALL

其中 USERNAME 是实际用户名,这将只允许该用户在没有密码提示的情况下运行 sudo 命令。

希望这能回答你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-13
    • 2015-07-15
    • 2020-09-18
    • 2017-11-09
    • 2018-07-20
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    相关资源
    最近更新 更多