解决VSCode使用Remote SSH连接远程服务器免密登陆


在这里插入图片描述

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。
📗本文收录于杂项系列,大家有兴趣的可以看一看
📘相关专栏Rust初阶教程go语言基础系列、spring教程等,大家有兴趣的可以看一看
📙Java并发编程系列,设计模式系列、go web开发框架 系列正在发展中,喜欢Java,GoLang,Rust,的朋友们可以关注一下哦!

起因

因为最近在做小练习,需要用到linux进行编译,本人的电脑又过于垃圾,于是便租了一台服务器,用VSCode+Remote SSH使用用开发。但在使用过程中,用传统的密码方式,只要转跳到一个新文件夹就会要求重新输入密码。十分影响开发体验和开发效率。于是便有了这篇文章的诞生。

解决方式

为了解决重复输入密码的问题,我们必须采用ssh的登陆方式。接下来便会介绍如何解决这个问题。

生成密钥

由于我们是使用 SSH 连接远程服务器,因此 Windows 需要支持 SSH 。
可以使用 Win + R ,输入 cmd 打开控制窗口,直接输入 ssh ,如下提示,则代表 SSH 已经安装成功;
在这里插入图片描述
如果没有安装可以通过安装git获取,也可以windos直接获取。

windos获取步骤

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
安装成功之后记得通过ssh查看是否安装成功。

配置SSH密钥

目的:将本机添加到远程服务器连接白名单,让服务器知道是已认证的电脑在连接。过程类似于 GitHub 网站添加本地电脑的 SSH 公钥。

生成公钥

使用如下命令,生成 SSH 公钥文件。如果已经生成,则可直接使用,跳到步骤二。

# 方法一
ssh-keygen

# 方法二,参考使用Git生成密钥
ssh-keygen -t rsa -C "youremail@example.com"


# 方法三,直接在指定的文件夹下生成
ssh-keygen -t rsa -b 2048 -f C:\Users\YourUsername\.ssh\id_rsa_windows

输入命令后一路回车

找到公钥

一般生成的密钥文件,路径为:C:\Users\user.ssh ,找到公钥文件 id_rsa.pub ,复制到远程服务器 根目录 的 .ssh 文件夹中。

(1)根目录,不一定非要是 /.ssh 路径,可以是自己的用户目录,类似这样:/onenewcode/.ssh。

(2).ssh 文件夹没有怎么办?新建一个文件夹,命名为 .ssh 即可。同时要确认远程服务器是否支持 SSH ,如果此时正是通过 SSH 方式连接的,那肯定是支持了。

添加公钥到远程服务器

将生成的公钥( id_rsa_windows.pub的内容)添加到你远程服务器的 authorized_keys 文件中,以允许连接。

可以使用以下方法之一:

  1. 使用 scp 命令:使用 scp 命令将公钥文件传输到远程服务器,在远程服务器上,将公钥内容追加到 authorized_keys 文件,但是本人不建议使用scp发送,这样会对自己机器或者对方机器的原有配置造成覆盖或是丢失,存在风险。
  2. 手动复制:手动复制公钥文件 (id_rsa_windows.pub) 的内容,然后登录到远程服务器,并将内容粘贴到 authorized_keys 文件。如下是我生成的id_rsa_windows.pub文件内容:

在远程服务器上,authorized_keys 文件通常存储在用户的 .ssh 目录中。具体路径可能为 ~/.ssh/authorized_keys。例如我的用户名是 onenewcode,那么 authorized_keys 文件的路径可能是 /home/onenewcode/.ssh/authorized_keys 。
如果你的.ssh目录或者 authorized_keys 文件不存在,你可以在服务器终端使用以下命令创建它:

 # 创建目录
 mkdir ~/.ssh
 # 进入目录
 cd ~/.ssh
 # 创建 authorized_keys 文件
 touch authorized_keys
 # 使用文本编辑器打开 authorized_keys 文件,并将你的公钥内容粘贴到其中
vim authorized_keys
 # 保存并关闭文本编辑器。

注意如果我们已经可以连接上服务器则可以先用密码在vscode登陆上,采用图形化界面操作,上述步骤。

配置 SSH 客户端

打开你的 SSH 客户端(本机)配置文件(也就是前面生成的config文件,一般在C:\Users\YourUsername.ssh\config),添加配置(IdentityFile 私钥文件路径),以指定使用哪个私钥文件。只需要把IdentityFile 下的路径改成自己需要的就行了,其它的内容请看下面的格式介绍。

Host 华为云 
    HostName 10.36.134.163
    User root
    IdentityFile C:\Users\29071\.ssh\id_rsa_windows

Host <远程主机名称1>
HostName <远程主机1 IP>
User <用户名1>
Port <ssh端口,默认22>
IdentityFile <本机SSH私钥路径>
ForwardAgent yes <VSCode 自己添加的,不用管>

总结

这样我们就可以不必在文件夹中跳转一次次的重新输入密码了。真是美滋滋。

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过去日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值