vs code SSH免密连接远程服务器
SSH介绍
SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。OpenSSH 工具是SSH 协议当前最流行的一种实现,Linux 的所有发行版几乎都自带 OpenSSH。
SSH 的软件架构是服务器-客户端模式(Server - Client)。在这个架构中,SSH 软件分成两个部分:向服务器发出请求的部分,称为客户端(client),OpenSSH 的实现为 ssh;接收客户端发出的请求的部分,称为服务器(server),OpenSSH 的实现为 sshd
以上引用(抄自)SSH 教程
所以,sshd作为接收请求的SSH服务端,它若是挂了的话(程序停止运行),客户端或者说你的本地计算机是连不上服务器的。
OpenSSH
注:本文是在win10下操作。
开始,先确认OpenSSH 是否安装。win10下,进行如下确认/安装
-
打开“设置”,选择“应用”>“应用和功能”,然后选择“可选功能” 。
-
扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后:
- 查找“OpenSSH 客户端”,再单击“安装”
安装好后,如图
Visual Studio Code
vs cdoe , emm,一个写代码的工具(虽然你可以用它摸鱼聊天找对象)。去它(官网)(https://code.visualstudio.com/)下载安装。没啥大问题。
安装Remote-SSH插件
在vs code ssh连接服务,这里借助一个插件Remote-SSH。在左侧活动栏点击扩展,在插件商店中搜索插件名字Remote-SSH, 点击进行安装。
安装好后,会在左侧活动栏看到一个新的组件。
密码输入连接服务器
之后,我们尝试连接服务器。根据下图顺序进行点击输入。
- 点击远程资源管理器
- 添加新的SSH连接,
- 输入连接代码,例如:
ssh username@127.0.0.1
之后,输入连接命令后,会提示选择SSH保存地址,我选择一个路径。最后在左侧会看到成功添加一个SSH连接地址。
接下来就可以连接服务器了,点击左侧那个连接符号,会提示,输入密码,输入服务器账号密码后。就连接成功了。
下图是连接成功的界面。三键齐按 ctrl + shift + ` , 调出命令行终端。
密钥登陆服务器
上面是用密码输入登录服务器,你会发现每次连接,或者打开文件夹,都会要求输入一遍密码。密码简单不安全,复杂容易忘,输入也很麻烦。现在我们使用密钥进行登录。SSH密钥登陆采用非对称加密,需要公钥和私钥配合使用。
生成密钥
在原来那个没有连接服务器的vs code窗口, ctrl + shift + ` 调出终端
使用命令ssh-keygen
进行密钥生成,它有一些参数可以设置,比如-t 可以选择加密算法,这里就采用默认设置。
命令运行后,一开始会提示密钥的保存文件名,id_rsa 是私钥文件名,id_rsa.pub是公钥文件名,这里默认,回车就行。
之后提醒第二个问题,询问是否对私钥进行密码保护,这是进一步做了安全保护。这里设置了密码的话,每次密钥登陆时,你还需要输入密钥密码,也是有点麻烦,我这里就不进行设置了,回车不设。
然后密钥就生成了。
上传公钥
下一步,需要把本地生成的公钥传到服务器使用,打开公钥,复制其内容(完整一行)
然后转到已经连接了服务器的vs code窗口, 打开文件,~/.ssh/authorized_keys
, 没有的话,就手动创建一个
然后在里面添加刚才复制的公钥,保存。我这里有两个公钥,因为之前添加过一个。
然后运行
chmod 644 ~/.ssh/authorized_keys
之后再次连接,就会发现不要密码,直接就可以登陆了