SSH:警告:不受保护的私钥文件!错误与解决方法

时间:2020-01-09 10:44:08  来源:igfitidea点击:

我在由Suse Enterprise Linux服务器提供支持的Amazon EC2计算实例上设置服务器。
我正在使用以下命令从Mac OS X/Ubuntu Linux桌面登录我的EC2计算:

ssh -i suse-ec2-server-jp.pem [email protected]

我收到以下错误:

<<<<<<<<<<<<<<<<<<<@@ 
@ WARNING: UNPROTECTED PRIVATE KEY FILE!  @ 
<<<<<<<<<<<<<<<<<<<@@ 
Permissions 0440 for 'suse-ec2-server-jp.pem' are too open. 
It is recommended that your private key files are NOT accessible by others. 
This private key will be ignored. 
bad permissions: ignore key: suse-ec2-server-jp.pem 
Password: 

建议他人不能访问您的私钥文件。
此私钥将被忽略。
错误权限:忽略密钥:suse-ec2-server-jp.pem
密码:

如何解决此问题并使用ssh命令登录?

答:要解决此问题,您需要使用chmod命令。您需要确保将suse-ec2-server-jp.pem的权限设置为0400,即该文件只能由您读取,而不能由任何其他组,用户和其他用户读取。

chmod命令语法来修复文件警告

语法为:

chmod 0400 file
chmod 0400 /path/to/file

如果suse-ec2-server-jp.pem位于$HOME/.ssh /目录中,请尝试:

## set permission on file ##
chmod 0400 $HOME/.ssh/suse-ec2-server-jp.pem 
 
## Make sure dir containing the suse-ec2-server-jp.pem private key and other files set to 0700
chmod 0700 $HOME/.ssh/

使用ls -l命令验证权限:

ls -ld $HOME/.ssh/
ls -l $HOME/.ssh/suse-ec2-server-jp.pem

现在,尝试使用ssh命令,如下所示:

## for ubuntu Linux #
ssh -i $HOME/.ssh/suse-ec2-server-jp.pem [email protected]
 
## for Suse ##
ssh -i $HOME/.ssh/suse-ec2-server-jp.pem [email protected]
 
## For freebsd ##
ssh -i $HOME/.ssh/suse-ec2-server-jp.pem [email protected]

请注意,这不是AWS EC2或者Ubuntu/Suse Linux或者Apple OS X的特定问题。
这是与OpenSSH客户端特定的安全性相关的问题。