在Windows下的 linux bash 使用 pem 文件远程 ssh 连接 linux 服务器
其中 pem 文件放在e盘的文件夹下
使用命令 ssh -i "/mnt/e/xxx.pem" ubuntu@192.168.22.173
连接不上并提示下面信息
Permissions 0555 for '/mnt/e/xxx.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/mnt/e/xxx.pem": bad permissions
Permission denied (publickey).
信息提示大意是 pem 文件的权限太过开放了,然后查看一了一下文件的权限
-r-xr-xr-x 1 root root 1698 Feb 1 14:40 xxx.pem*
然后尝试修改一下权限就行了 chmod 400 xxx.pem
改完之后发现文件的权限还是 -r-xr-xr-x
提示Permissions 0555 for '/mnt/e/xxx.pem' are too open.
的原因是 pem 的文件权限开放给所有人了,不安全。其实把权限修改仅自己能用就行了。
但上面的问题是,无论权限怎么改,都不能把其他用户角色的权限给去掉,原因是文件是在 /mnt 的目录下的,/mnt 是windows的挂载目录,不管怎么改权限,权限的后两位都不会生效,如将文件的权限改成 700
,最终还是会被改成权限 777
, 后面的 00 没生效。
解决方法:既然文件在 /mnt 下无法修改权限,那就把文件复制到非 /mnt 的目录再改权限和执行就好了,如 /usr/local 下