相信不少人被 aws ec2 连接的问题给折腾得够呛,每每看到 Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
这句话,头都要大了。搜索了下,各种答案,但没有一个有效的。
这里提供一些解决的办法和思路,注意,不一定能够 100% 解决这个问题,要知道连 AWS 官方都没有一个靠谱的办法 :(
查看你的用户名是否正确
AWS 中创建实例时,选择不同的系统他的用户名也会不一样,比如我常用的 centOS 系统,它的用户名是 centOS,ubuntu 系统是 ubuntu,Amazon Linux 系统是 ec2-user,debian 系统是 admin 或者 root,还有其他的系统用户名可以去 aws 搜索看看。
权限问题
如果不是上面用户名错误,那么权限问题就占了很大的比例。权限问题分两个,一个是在本地,一个是在服务器端。
本地
本地的 pem 文件,运行命令 chmod 400 key.pem
更改权限,然后再尝试是否连接得上。
服务器端
服务器端 key 的权限问题,运行下面几个命令,注意,不同的服务器,这里的 username 会不一样,我是在 centos 上解决的,所以这里是 centos
chmod 600 /home/centos/.ssh/authorized_keys
chmod 700 /home/centos/.ssh
chmod 700 /home/centos
一般这里的权限设置后,问题就会解决,我自己就是这样解决的。
pem 文件问题
确保本地的 pem 文件是完整的,不是错误的。
经过以上方式基本能解决这个让人头疼的问题,如果你有什么其他解决方式的,欢迎告诉我。
> 可在 Twitter/X 上评论该篇文章或在下面留言(需要有 GitHub 账号)