SSH 错误解决:Permissions 0644 for ‘/Users/roc/.ssh/id_rsa‘ are too open
1. 背景
换新电脑了,Mac Mini M4 Pro 64G,哈哈哈哈,性能直接拉满;从旧的电脑复制了一份 id_rsa,准备拉代码开始牛马,结果报错如下:
Warning: Permanently added 'e.coding.net' (RSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/roc/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/roc/.ssh/id_rsa": bad permissions
git@e.coding.net: Permission denied (publickey).
fatal: Could not read from remote repository.
在使用 SSH 连接时,也遇到以下错误:
Permissions 0644 for '/Users/roc/.ssh/id_rsa' are too open.
这个错误表明 SSH 客户端认为私钥文件(id_rsa
)的权限设置过于宽松,可能会导致安全问题。SSH 要求私钥文件的权限必须非常严格,以确保只有文件的所有者才能访问。
2. 错误原因
SSH 协议要求私钥文件的权限设置为 600
,这意味着只有文件的所有者可以读取和写入该文件。如果文件权限设置为 0644
或其他更宽松的权限,SSH 客户端会警告并拒绝连接,以避免潜在的安全风险。
3. 解决方案
要解决这个问题,需要修改私钥文件的权限,确保它只能由当前用户访问。可以使用以下命令来更改权限:
chmod 600 ~/.ssh/id_rsa
这条命令将会把 id_rsa
文件的权限设置为 600
,也就是只允许文件所有者读取和写入。
4. 操作示例
- 打开终端,进入到
~/.ssh/
目录:cd ~/.ssh
- 使用
chmod
命令更改文件权限:chmod 600 id_rsa
- 确认权限已成功更改:
ls -l id_rsa
输出结果:
-rw------- 1 roc staff 1675 Jan 1 12:34 id_rsa