为什么0644
ie对于 SSH 密钥来说太开放了?另外,我在目录 ( ) 或主目录 ( )-rw-r--r--
上找不到任何错误权限。.ssh
0700
0731
顺便说一句,我在通过以下方式测试密钥的释义时收到此错误ssh-keygen -y -f my_key.pub
此致
答案1
您可能在错误的文件上运行 ssh-keygen ssh-keygen -y
。私人的密钥文件。“.pub”文件通常包含民众密钥。您可能有一个名为的文件my_key
,没有任何扩展名,并且它应该是模式 0600。该文件应该包含私钥。
直接回答您的问题,SSH 密钥通常用于允许无需密码即可连接到远程服务器。拥有私钥将允许某人在任何接受密钥的系统上登录您的帐户。ssh-keygen 和其他 ssh 实用程序要求私钥文件具有受限权限,因为这些文件很敏感并且需要保持安全。
答案2
您需要运行的唯一命令是chmod 600 ~/.ssh/id_rsa
。就是这样。
这会改变文件的权限,以便所有者(您)可以读取和写入它,这将删除您收到的错误消息。
答案3
0644
对于公钥来说不应该太开放,但对于私钥来说却太开放了。
你的私钥应该有权限,0600
而你的公钥也有权限0644
。
顺便说一句,您还应该注意.ssh
文件夹的权限。它应该具有权限0700
,以便只有您(所有者)可以控制该文件夹。
至于您的主目录,不应授予组和其他人写入权限。
运行chmod go-w /home/username
应该可以解决这个问题。
答案4
上述答案是有效的,但在运行任何chmod
修复权限之前,请确保您的IdentityFile
(s) 确实~/.ssh/config
引用了您的私钥。新手可能会误解这一点并引用公钥(带.pub
扩展名),从而导致相同的错误(因为公钥文件权限对于私钥来说太开放了)。