我正在尝试对Google Cloud实例执行ssh。我能够对我的用户名执行ssh(假设我的PC用户名是apple,那么我可以访问apple用户名),但是当我尝试在同一用户名上访问其他用户名时实例(让我们说信息),然后给我“权限被拒绝(公钥)”。
我是linux的新手,请帮助我如何从系统访问其他用户名目录。
答案 0 :(得分:0)
可以预料,Linux用户具有自己的用户区域,通常称为 Home 。就像Windows用户或Mac用户一样,每个用户都是独立的,一个用户中的属性(文件/文件夹)不能直接从另一个用户访问,除非将该任务委派给超级用户。在这种情况下,您可以在命令前面使用sudo
来告诉系统您有权使用超级用户的权限来访问该资源。
.ssh/authorized_keys
或ssh info@IP
)访问的用户的公用密钥添加到ssh apple@IP
文件中。但是,还有另一种方法,而不是向您的 sudoers 组或root
用户所属的用户添加公钥(不建议公开root
用户出于明显的安全原因而到外面)。然后,您只需简单地SSH到该用户并运行sudo su - USERNAME
,其中 USERNAME 是系统中除当前用户外的任何用户(默认为root
,因此通过运行{{1} },您将以root用户身份登录。
FYI,中间的-告诉系统将当前目录复制到该用户的主目录中,如果您将-留在外面成为该用户,但您的当前目录仍与您运行命令的位置相同。
这将要求您在首次运行带有sudo su -
前缀的命令时输入用户密码,以验证您是不是朋友还是黑客。您可以通过使用sudo
命令(对于 root 用户为sudo visudo
)更改Sudoers文件来停止此操作,这将为您提供一个定义权限的文件。您可以通过以下方式替换以visudo
开头的行来允许 Sudoers 组中的所有用户:
%sudo
或者您可以在 #用户权限规范
%sudo ALL=(ALL) NOPASSWD:ALL
USERNAME 是实际的用户名,这将仅允许该用户运行USERNAME ALL=(ALL) NOPASSWD:ALL
命令而没有密码提示。
希望这能回答您的问题。