这个问题真的要把我逼疯了,为什么呢?
为了解决这个问题,我搜遍了CSDN、知乎、简书上的解决方案,CSDN上的回答真的是水文太多,相互抄,抄就抄吧,只抄一半。这让真正想解决问题的人走了太多的弯路。
也不知道是谁写的原文,可能作者解决了,但是写的很不清楚,也让读者越来越糊涂。我走了这么多的弯路,解决了这个问题,希望我能把问题讲明白。
**(1)**SSH的密码登录:说白了,就是通过远程登录服务器,通过设置网络IP和端口(默认为22)进行登录,这种登录方法需要登录用户名和登录密码。
登录名就是在linux终端登录的用户名,不是root用户,切记!
是你登录linux让你输入密码的那个用户,如下图所示,parker 就是用户
有些人可能说我切到root用户不久行了吗? 不行
**(2)**SSH的密钥登录:密钥就不用输入密码了。这个项目上很重要,既保证了安全性,开发有很方便。
他的原理就是需要生成RSA的非对称密钥,本地计算机保存私钥,远程计算机linux端放置公钥,切记!!!
**(3)**步骤:用Xshell生成密钥,这个大家都会了,我不需要废话。继续往下:Xshell生成了密钥以后,会继续操作到以下步骤:
点击浏览->用户密钥->属性->公钥,出现以下界面:
这公钥里面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远程服务器登录。
其实就是这么简单,别走弯路,大道至简,改太多东西,浪费时间还把自己搞晕了!!