chattr -i authorized_keys 无效

在Linux环境中,用户遇到了`lsattr`显示授权密钥文件属性异常的问题,文件权限显示为`-----a-------e--authorized_keys`。通过使用`chattr`命令移除多余的字符,成功将文件属性修正为`-------------e--authorized_keys`,并用`chmod 600`设置了正确的文件权限,确保了SSH连接的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题如题,
使用 查看

lsattr authorized_keys

显示

[root@VM-0-17-centos .ssh]# lsattr authorized_keys
-----a-------e-- authorized_keys

要修改的话正常来说是 -------e-- authorized_keys

chattr -a authorized_keys

有那个多余的就 -
后面就正常了

[root@VM-0-17-centos .ssh]# lsattr authorized_keys
-------------e-- authorized_keys
[root@VM-0-17-centos .ssh]# chmod 600 authorized_keys

大意了,这个问题还查了挺久

### 创建或添加 `authorized_keys` 文件的解决方案 如果缺少 `authorized_keys` 文件,可以通过以下方法创建并配置该文件: #### 1. 确认 `.ssh` 目录的存在 在用户的家目录下确认是否存在 `.ssh` 目录。如果不存在,则需要手动创建此目录,并设置正确的权限。 ```bash mkdir -p ~/.ssh chmod 700 ~/.ssh ``` 上述命令会递归地创建 `.ssh` 目录(如果它尚不存在),并将权限设置为仅允许用户访问[^1]。 --- #### 2. 创建 `authorized_keys` 文件 如果 `authorized_keys` 文件缺失,可以使用以下命令创建一个新的空文件: ```bash touch ~/.ssh/authorized_keys chmod 644 ~/.ssh/authorized_keys ``` 这一步确保了 `authorized_keys` 文件存在,并设置了适当的读取和写入权限[^4]。 --- #### 3. 添加公钥至 `authorized_keys` 将本地生成的公钥追加到 `authorized_keys` 文件中。假设公钥存储路径为 `~/.ssh/id_rsa.pub` 或其他自定义名称(如 `id_dsa.pub`),执行如下命令即可完成操作: ```bash cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ``` 或者通过远程传输的方式获取目标服务器上的公钥内容,并将其粘贴到当前服务器的 `authorized_keys` 文件中[^3]。 --- #### 4. 验证文件属性与权限 某些情况下,即使成功创建了 `authorized_keys` 文件,仍可能出现无法正常工作的现象。此时需检查文件及其父级目录的权限是否正确。具体验证方式如下: - **`.ssh` 目录权限**:应设为 `700`。 - **`authorized_keys` 文件权限**:应设为 `644`。 可通过以下命令调整权限: ```bash chmod 700 ~/.ssh chmod 644 ~/.ssh/authorized_keys ``` 此外,还需注意文件是否有不可更改属性(immutable flag)。如果有,可移除该标志以恢复正常的编辑功能: ```bash lsattr ~/.ssh/authorized_keys chattr -i ~/.ssh/authorized_keys ``` 以上命令用于检测和清除不可变属性[^2]。 --- #### 5. 测试 SSH 连接 最后,在完成所有配置后测试无密码登录的功能是否生效。尝试从客户端发起连接请求: ```bash ssh user@target_server_ip ``` 如果一切配置正确,应该能够实现无需输入密码的自动登录过程[^5]。 --- ### 注意事项 - 如果仍然遇到问题,请检查 `/etc/ssh/sshd_config` 文件中的参数设置,特别是 `AuthorizedKeysFile` 是否指向正确的路径,默认值通常为 `.ssh/authorized_keys`。 - 对于根用户登录的情况,还需要确保 `PermitRootLogin` 设置为 `yes` 并重启 SSH 服务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值