📕作者简介: 过去日记,致力于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"[email protected]"# 方法三,直接在指定的文件夹下生成
ssh-keygen -t rsa -b2048-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 文件中,以允许连接。
可以使用以下方法之一:
- 使用 scp 命令:使用 scp 命令将公钥文件传输到远程服务器,在远程服务器上,将公钥内容追加到 authorized_keys 文件,但是本人不建议使用scp发送,这样会对自己机器或者对方机器的原有配置造成覆盖或是丢失,存在风险。
- 手动复制:手动复制公钥文件 (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 自己添加的,不用管>
总结
这样我们就可以不必在文件夹中跳转一次次的重新输入密码了。真是美滋滋。
版权归原作者 过去日记 所有, 如有侵权,请联系我们删除。