bash: ./authorized_keys: 权限不够
时间: 2024-09-21 14:03:47 浏览: 5
当你遇到 `bash: ./authorized_keys: 权限不够` 的错误时,意味着你在尝试读取、写入或执行 `authorized_keys` 文件时权限不足。这个文件通常用于SSH无密码登录,它应该只由SSH用户(如root或特定用户)来修改。
解决这个问题的步骤通常是:
1. 确保权限设置正确:
使用 `chmod` 命令更改 `authorized_keys` 文件的权限。如果是普通用户,你应该给文件所有者读、写权限:
```
chmod 600 ~/.ssh/authorized_keys
```
或者如果你是root用户,可以使用:
```
chmod 644 ~/.ssh/authorized_keys
```
这样设置了只有文件所有者(即SSH用户)才有读写权限。
2. 检查所属组:
确认文件所属的用户组也是正确的。如果是用户账户,应该:
```
chown your_username:your_username ~/.ssh/authorized_keys
```
将 `your_username` 替换为你实际的用户名。
3. 继续测试:
修改权限后,试着再次登录,看看是否解决了权限问题。
相关问题
bash: /root/.ssh/authorized_keys: Permission denied
这个错误提示表示你没有权限读取或修改 `authorized_keys` 文件。通常这个文件存储了可以免密登录到远程服务器的公钥,所以需要具有 root 权限来操作该文件。
你可以尝试使用 `sudo` 命令来获取 root 权限,例如:
```
sudo cat /root/.ssh/authorized_keys
```
这将以 root 权限打开 `authorized_keys` 文件。如果你需要修改该文件,可以使用以下命令:
```
sudo nano /root/.ssh/authorized_keys
```
这将使用 `nano` 编辑器打开 `authorized_keys` 文件,你可以在其中添加或删除公钥。完成编辑后,按下 `Ctrl+X` 保存并退出编辑器。
shell脚本:如果~/.ssh/authorized_keys文件不存在,则新建,如果.ssh文件夹不存在也新建
你可以使用以下Shell脚本来实现如果 `~/.ssh/authorized_keys` 文件不存在,则新建,如果 `~/.ssh` 文件夹不存在则也新建的功能:
```shell
#!/bin/bash
authorized_keys_file=~/.ssh/authorized_keys
ssh_folder=~/.ssh
# 检查 authorized_keys 文件是否存在
if [ ! -f "$authorized_keys_file" ]; then
# 创建 authorized_keys 文件
touch "$authorized_keys_file"
echo "Created $authorized_keys_file"
fi
# 检查 .ssh 文件夹是否存在
if [ ! -d "$ssh_folder" ]; then
# 创建 .ssh 文件夹
mkdir "$ssh_folder"
echo "Created $ssh_folder"
fi
```
将以上代码保存为一个Shell脚本文件(例如 `create_ssh_keys.sh`),并给予执行权限:
```shell
chmod +x create_ssh_keys.sh
```
然后运行脚本:
```shell
./create_ssh_keys.sh
```
脚本将检查 `~/.ssh/authorized_keys` 文件是否存在,如果不存在,则创建该文件;同时检查 `~/.ssh` 文件夹是否存在,如果不存在,则创建该文件夹。