我正在尝试使用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文件系统并在那里运行命令;但是有更好的(或者更简单的)方式吗?
答案 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。
所以我认为唯一的解决方案是使用不同的权限挂载NTFS文件系统。