有一说一,真的方便
妈妈再也不用担心我忘记密码啦

[TOC]

闲话

因为咱一开始连服务器都是手动ssh连的,xshell那个软件用了一下就没用过,还不是免费,所以也没打算用它。于是每次连服务器的时候都是cmd打开,ssh输入一长段命令然后回车再输入一长串密码,好麻烦。

前几天捣鼓vsc的时候注意到左侧栏第五个远程资源管理器,然后百度了下,捣鼓了下发现挺好用的,不用输入那么多东西了,但是还要输密码

然后又发现了可以通过自己的密钥实现免密码连接,捣鼓了下,舒服了

不过现在还没建图床,md文件里面的图片不太好传,就只记一下密钥实现免密码连接吧,应该不怎么需要图片。

准备

1.ssh

2.好像没了?

本地和服务器都要安装ssh,这些东西的安装方法百度一大堆,就不说了,服务器那边当然也要开启ssh的服务和22端口,上面百度到的里面应该也有讲,略过

生成密钥

首先,如果本地还没连过服务器的话,建议先手动ssh连一下服务器,存一下服务器的公钥什么的,之后设置known_hosts就不用设置了。(本博文不提供known_hosts设置方法 其实主要是因为咱也没搞懂这块

打开命令行,输入

ssh-keygen

然后三个回车,完事。其中第一个回车确认的是生成密钥公钥的存放位置,第二个是设定密码,第三个是确认密码,默认是空,也就是没密码,如果输入了,之后每次连似乎还是要输密码,当然也更安全,不过我这种小用户也不用太过担心。所以我全是默认。

C:\Users\W8362>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\W8362/.ssh/id_rsa):
Created directory 'C:\Users\W8362/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\W8362/.ssh/id_rsa.
Your public key has been saved in C:\Users\W8362/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

类似于上面这样
linux的默认路径是/home/schacon/.ssh/id_rsa

完了之后去默认目录下就能看到了,其中私钥是保存在自己这边;公钥,也就是后缀是.pub的文件是保存在服务器那边,具体的待会讲

服务器配置

把公钥放在服务器

就是本地那个路径下生成的.pub的那个文件,随便怎么放过去(scp?),随便放在哪,不过反正我放在了.ssh文件夹下面,方便之后操作(我上传过去顺便改名成my_pc_id_rsa.pub)

# ls ~/.ssh
authorized_keys  my_pc_id_rsa.pub

把公钥写入authorized_keys

随便怎么写入,咱是这样写的

cat my_pc_id_rsa.pub >> authorized_keys

修改配置文件开启密钥验证

编辑配置文件

vim /etc/ssh/sshd_config

有就修改,没有就加,把这几项修改成这样:(善用查找指令)

AddressFamily inet
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication yes

PermitRootLogin 、 PubkeyAuthentication 这两项是要修改成yes,PermitRootLogin 是允许root用户认证登录,而PubkeyAuthentication 是启用公钥认证。AuthorizedKeysFile是公钥路径,生成的。最后把PasswordAuthentication yes就允许密码登录,保存重启ssh服务。

设置权限

ssh目录的权限700;

ssh/authorized_keys文件权限600;

chmod 600 authorized_keys
cd .. && chmod 700 -R .ssh

结束,ssh测试一下

# ssh root@**.**.**.**
Last login: Sat Apr 24 17:23:37 2021 from **.**.**.**

Welcome to Alibaba Cloud Elastic Compute Service !      

顺带一提,vsc里面配置远程资源管理器也挺简单的,安装插件Remote - SSH,再设置一下

Host ali_cloud  (随便起)
    HostName **.**.**.**
    User root

就好了

以上