1

我正在尝试使用ssh-keygen从 Windows 分区读取私钥文件,并输出公钥。

不幸的是,我收到以下错误:

$ ssh-keygen -y -f private_deploy_key
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for 'spot_private_deploy_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: private_deploy_key
Enter passphrase: 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for 'spot_private_deploy_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: private_deploy_key
load failed

因为这是一个 NTFS 文件系统,所以我无法更改文件的权限:

$ chmod 600 spot_private_deploy_key

$ ls -l
total 4
-rwxr-xr-x 1 meyerat meyerat 1678 Jul  2 16:28 spot_private_deploy_key

有没有解决的办法?我意识到我可以将文件复制到我的 Linux 分区所在的 ext4 文件系统并在那里运行命令;但是有没有更好(或者更简单)的方法?

4

1 回答 1

0

我找到了与此的讨论

我查看了源代码,发现了这个:

if ((st.st_uid == getuid()) && (st.st_mode & 077) != 0) { 错误("@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); 错误(“@警告:未保护的私钥文件!@”);错误(”@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@"); error("'%s' 的权限 0%3.3o 太开放了。", (u_int)st.st_mode & 0777, 文件名); error("建议您的私钥文件不能被他人访问。"); error("此私钥将被忽略。"); 返回0;}

错误消息不正确,这不是建议,而是要求。无法使用 SSH 绕过此问题。

http://www.linuxquestions.org/questions/linux-server-73/warning-unprotected-private-key-file-override-839057/#post4132768

所以我认为唯一的解决方案是挂载具有不同权限的 NTFS 文件系统。

于 2014-07-03T13:48:57.257 回答