无法更改 authorized_keys 的所有权-操作不允许

无法更改 authorized_keys 的所有权-操作不允许

我按照以下步骤在我的服务器上设置公钥/私钥集:

通过在 Linode 上逐个输入以下命令来修改公钥的权限。将 example_user 替换为您的用户名。

chown -R example_user:example_user .ssh
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

但当我做第一行时

chown -R david:david .ssh

我收到错误信息:

 changing ownership of '.ssh/authorized_keys': Operation not permitted

我已按照指南的步骤进行操作,但由于我使用的是 Windows,因此我必须使用 Windows scr 来上传公钥,而不是使用 Unix 命令行。

以下是文件信息位:

  File: `.ssh/authorized_keys'
  Size: 294             Blocks: 8          IO Block: 4096   regular file
Device: EDITED OUT    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-03-17 16:32:06.000000000 +0000
Modify: 2013-03-17 16:32:06.000000000 +0000
Change: 2013-03-17 19:06:14.000000000 +0000

答案1

看起来您没有权限更改该文件的所有权。我猜,无论您从哪个文件系统传输文件,都有不同类型的权限,这些权限没有正确传输,最终将文档的所有权交给了 root。再次尝试使用相同的 chown 命令sudo(例如,sudo chown -R david:david /path/to/.ssh)。每当使用带有 的命令时sudo,最好使用绝对路径(例如,/home/david/.ssh)而不是相对路径(./.ssh)。

答案2

就我的情况而言:
我尝试过
lsattr authorized_keys
,并且取得了 成果
-----a-------e-- authorized_keys
A这里的意思是仅追加。

使用chattr -a authorized_keys删除A使其正常。

答案3

su -c "chown david:david ~david/.ssh/authorized_keys"

此时系统会要求您输入 root 密码,希望您知道这台机器的 root 密码。否则,由于缺少 sudo,您将面临艰难的挑战。

答案4

AD2020-我在更改 .ssh 的权限和所有权时遇到了类似的问题,我无法将我的 rsa 密钥推送到 github。

在先前答案的帮助下,我理清了思路:

sudo chown -R user:user .ssh | chmod 700 .ssh | chmod 600 /home/user/.ssh/id_rsa.pub

在那之后:

〜/.ssh-ls -la

git push -u origin master

并且它有效:)

相关内容