在NTFS上使用带有私钥文件的ssh-keygen

时间:2014-07-03 13:36:46

标签: ssh ssh-keys ssh-keygen

我正在尝试使用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文件系统并在那里运行命令;但是有更好的(或者更简单的)方式吗?

1 个答案:

答案 0 :(得分:0)

我发现了与此

的讨论

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

  

if((st.st_uid == getuid())&&(st.st_mode& 077)!= 0){   错误(”@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@“);   错误(“@警告:UNPROTECTED PRIVATE KEY FILE!@”);   错误(”@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@“);   错误(“'%s'的权限0%3.3o太开放了。”,(u_int)st.st_mode&   0777,filename);错误(“建议您的私钥文件   其他人无法访问。“);错误(”此私钥将是   忽略。“);返回0;}

     

错误信息不正确,这不是推荐,它是一个   需求。没有办法绕过这个使用SSH。

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

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