这个问题真的要把我逼疯了,为什么呢?

为了解决这个问题,我搜遍了CSDN、知乎、简书上的解决方案,CSDN上的回答真的是水文太多,相互抄,抄就抄吧,只抄一半。这让真正想解决问题的人走了太多的弯路。

也不知道是谁写的原文,可能作者解决了,但是写的很不清楚,也让读者越来越糊涂。我走了这么多的弯路,解决了这个问题,希望我能把问题讲明白。

**(1)**SSH的密码登录:说白了,就是通过远程登录服务器,通过设置网络IP和端口(默认为22)进行登录,这种登录方法需要登录用户名和登录密码。

登录名就是在linux终端登录的用户名,不是root用户,切记!
是你登录linux让你输入密码的那个用户,如下图所示,parker 就是用户

xshell使用pem密钥登录_服务器


有些人可能说我切到root用户不久行了吗? 不行

**(2)**SSH的密钥登录:密钥就不用输入密码了。这个项目上很重要,既保证了安全性,开发有很方便。

他的原理就是需要生成RSA的非对称密钥,本地计算机保存私钥,远程计算机linux端放置公钥,切记!!!

**(3)**步骤:用Xshell生成密钥,这个大家都会了,我不需要废话。继续往下:Xshell生成了密钥以后,会继续操作到以下步骤:

xshell使用pem密钥登录_服务器_02


点击浏览->用户密钥->属性->公钥,出现以下界面:

xshell使用pem密钥登录_服务器_03


这公钥里面ssh-rsa ********************这些就是要复制到远程服务器inux端的公钥信息。

============以上是在客户端操作的,即Xshell windows端 =========

(3)从这里是在linux端操作:打开服务器linux端,添加刚才复制的公钥信息 到~/.ssh/authorized_keys里面,没有的新建就好了,这个会linux的都能完成。

(4)修改文件权限:这是最为重要也是最容易忽略的,因为SSH是安全性很高的应用,因此对文件的权限依赖很高。所以修改权限:

/home/username/这两个目录的权限不能超过755,这里设为755

示例:sudo chmod 755 /home/username

.ssh/权限为700 别的组用户没有任何权限,只限当前用户

authorized_keys 权限设为600 也是限制为当前用户

(5)再次登录即可完成SSH的Xshell远程服务器登录。

其实就是这么简单,别走弯路,大道至简,改太多东西,浪费时间还把自己搞晕了!!