VS code远程连接Linux服务器/本地虚拟机并实现免密登录

在学习或工作的初期,我们往往要登录远程服务器/虚拟机的终端来进行操作,但每次启动Xshell/VMware进入终端后还要再启动xftp进行文件传输,最后再VS code来启动编写代码,这一套对于我们新手来说就显得很多余,而且每次登录远程终端还要再输入一遍密码就挺烦的,那么能不能利用VS code远程连接Linux服务器/本地虚拟机并实现免密登录呢?当然可以。

一、远程连接

1.Ubuntu系统中安装SSH服务

(1)在安装新软件之前,最好先更新我们的包列表,以确保安装的是最新版本的软件包。先Ctrl + Alt + T 打开一个新的终端窗口,然后sudo apt update更新包列表

(2)使用以下指令安装SSH服务

sudo apt install openssh-server

这里选yes即可

(3)安装完成后,SSH服务通常会自动启动。我们可以使用以下命令检查SSH服务的状态,当然一开始我们也可以使用该命令查看自己的Linux系统是否安装ssh服务

sudo systemctl status ssh   #查看ssh状态
sudo systemctl start ssh    #启动ssh服务
sudo systemctl stop ssh     #关闭ssh服务
sudo systemctl restart ssh  #重启ssh服务,如果不行就重启试试

正常安装好后便能得到如下图所示,我们能看到服务正在运行,处于 active (running) 的状态。

(4)然后我们使用以下指令打开ssh配置文件查看一下端口号和IP地址,后面要用到

cat /etc/ssh/sshd_config #查看端口号,默认22
sudo nano /etc/ssh/sshd_config  #有其他要求可以进行修改

ip addr  #查看IP地址

2.VS code安装SSH并连接服务器

(1)打开VS code,点击左侧窗口栏的扩展,搜索Remote - SSH并进行安装,我这里是已经安装过了

(2)接下来点击左侧窗口栏的远程管理,再点击远程(隧道/SSH)的配置齿轮,在弹出的搜索文件框选择第一个.ssh\config文件

然后根据之前Linux服务器查询的信息修改配置文件

(3)这时我们刷新一下远程管理,就能看到我们的服务器了,点击在当前窗口中连接

在弹出的新窗口搜索栏选择Linux

输入我们服务器的密码并按enter

等待一会儿,就会显示我们已连接成功,按ctrl+~就可以打开服务器终端进行操作了

(4)如果不习惯指令想查看图像化文件目录,则可以点击资源管理器,打开文件夹,选择一个你喜欢的目录确定,再选Linux平台输入密码就完成了

图形化目录栏展示

二、免密登录

1.密钥与相关文件创建

(1)按住win+r输入cmd打开window终端,然后输入以下指令生成密钥

ssh-keygen -t rsa  #生成密钥

然后选一个你喜欢的密钥保存地址(没有冲突时建议默认就好),再设定好密码(可以直接enter设无密码)

(2)打开Linux终端,并使用以下指令在根目录创建.ssh文件夹以及储存公钥的授权文件authorized_keys

mkdir ~/.ssh  #创建.ssh文件夹
touch ~/.ssh/authorized_keys  #创建储存公钥的文件
ls ~/.ssh/  #查看文件是否生成

2.公私钥连接与识别

(1)回到window系统,用记事本或VS code打开之前创建好的公钥(根据之前保存密钥设定的路径查找)并复制下来,注意.pub文件才是我们要复制的公钥文件,上面的是私钥(自己留着)

(2)再打开Linux终端,用下指令输入密码打开authorized_keys文件

sudo vim ~/.ssh/authorized_keys  #打开修改authorized_keys文件

将刚才复制的公钥粘贴到authorized_keys文件中并按 :wq退出。这里注意不要有中文字符(一般是设备或用户名称),如果有可能会乱码报错,这时你可以使用cp命令将公钥复制覆盖。

(3)打开VS code按之前方法进入.ssh的配置文件,将之前window创建的私钥地址添加上,再把身份鉴定选择no

这样的话免密登录就设定完成了,重启VS code再连接远程Linux服务器就不需要密码了。

ps:遇到拒绝访问问题 

如上图所示,除了公私钥没有正确配对外,也有可能是Linux服务器的文件读取权限不够(一般为所有者) ,建议将权限设置为755,这样便能解决。

总结 

本文主要以虚拟机的Ubuntu系统介绍了VS code远程连接Linux服务器/本地虚拟机并实现免密登录,其中要注意的点是密钥生成时可能会与原系统的git等软件产生.ssh文件的冲突,这时可以创建新路径来解决,文件权限不够可以通过加权限解决,还有一点便是用户名或其他命名不要有中文。

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值