vscode远程免密ssh原理与实操方法

news2024/11/23 22:07:47

什么是SSH

SSH是一种加密协议,全称为Secure Shell,用于安全地远程登录到服务器或其他远程设备上执行命令或传输文件。它提供了一种安全的加密通信机制,使得远程登录和文件传输等操作不会被恶意攻击者窃取或篡改,确保了数据的保密性和完整性。SSH采用公钥密码学技术,能够有效地防止被中间人攻击或网络窃听。

举例来说,如果我们要使用 Github 这种 git 代码托管平台的话,首先本地要生成一个 SSH 私钥(如id_rsa)公钥(如id_rsa.pub),然后将 公钥 填写到 Github 的 SSH Key 管理面板中。当我们向 Github 推送代码的时候会首先发起身份校验。此时,本地会将用户信息通过 SSH 私钥 执行『签名』操作。当签名信息发送到 Github 的时候,Github 就会使用用户保存在平台上的 公钥 来校验签名信息,使用 私钥 签名信息只能由对应的 公钥 进行校验,因此如果 Github 对签名校验通过,就可以认证当前的用户对代码仓库拥有响应的操作权限,之后就可以让用户提交的代码入库了,整体流程如下图:
在这里插入图片描述

关于公钥和私钥,是『非对称加密』相关的内容,公钥通常用于 内容加密认证签名,是可以在服务器与客户端之间进行传播的;而私钥是用来 解密公钥加密的内容对内容进行签名 用的

综上,SSH 采用非对称加密的方式来完成客户端与服务器端的认证并建立通信连接,因此可以被用于客户端与 git 平台之间的认证,以及远程服务器之间的免密认证。

vscode远程免密ssh

每次用vscode打开文件夹都要输入密码,让人有点心烦,小编利用 51假期研究了一会,终于找到了vscode远程免密ssh连接Linux的方法。本文非常合适有多个git账户的读者。

尝试使用终端工具SSH远程连接Linux

例如Git Bash,Cmder,MobaXterm。
~/.ssh文件夹创建authorized_keys文件,待会我们要把windows下的codeserver_id_rsa.pub文件的内容(按下Ctrl+A全选内容)拷贝到这个文件。如果有多个用户需要免密登录,一个一行。如果觉得拷贝麻烦的可以使用ssh-copy-id命令,不过,本文仅通过最本质的方法来操作。

安装Remote SSH 插件

在这里插入图片描述

配置hosts

C:\Windows\System32\drivers\etc配置远程IP对应的域名

# Debain
192.168.10.19 debain.cc
# Debain
192.168.10.18 codeserver.cc

配置windows的ssh config文件

C:\Users\用户名\.ssh\文件夹配置config文件。如何没有config文件,使用touch config命令生成该文件。

# codeServer
Host codeserver.cc
	HostName codeserver.cc
	User 登录Linux的用户名
	PreferredAuthentications publickey
	IdentityFile /c/Users/用户名/.ssh/codeserver_id_rsa
	
# gitee
Host gitee.com
	HostName gitee.com
	PreferredAuthentications publickey
	IdentityFile /c/Users/用户名/.ssh/gitee_id_rsa

# github
Host github.com
	HostName github.com
	PreferredAuthentications publickey
	IdentityFile /c/Users/用户名/.ssh/github_id_rsa

# Gitlab
Host gitlab.com
	HostName gitlab.com
	PreferredAuthentications publickey
	IdentityFile /c/Users/用户名/.ssh/gitlab_id_rsa

生成win端的公钥与私钥命令如下

换成你的邮箱和你的用户名。

ssh-keygen -t rsa -C "xxx@qq.com" -f /c/Users/用户名/.ssh/gitee_id_rsa
ssh-keygen -t rsa -C "xxx@qq.com" -f /c/Users/用户名/.ssh/github_id_rsa
ssh-keygen -t rsa -C "xxx@qq.com" -f /c/Users/用户名/.ssh/gitlab_id_rsa
ssh-keygen -t rsa -C "xxx@qq.com" -f /c/Users/用户名/.ssh/codeserver_id_rsa

生成文件如下

codeserver_id_rsa     
codeserver_id_rsa.pub  
config                
gitee_id_rsa          
gitee_id_rsa.pub       
github_id_rsa         
github_id_rsa.pub     
known_hosts                        

拷贝codeserver_id_rsa.pub内容至linux的authorized_keys文件

使用命令vi ~/.ssh/authorized_keys拷贝codeserver_id_rsa.pub内容至linux的authorized_keys文件

在这里插入图片描述
如果登录不了,可以先注释掉下面两行。

Host codeserver.cc
	HostName codeserver.cc
	User 登录Linux的用户名
	#PreferredAuthentications publickey
	#IdentityFile /c/Users/用户名/.ssh/codeserver_id_rsa

使用Ctrl + Shift + P,打开命令窗口,输入重启窗口命令reload window,确认左下角进入到连接成功的状态,期间没有提示输入密码的窗口,即代表成功了

在这里插入图片描述

参考资料

ssh copy
vscode通过ssh连接远程服务器 免密登录
如何配置 SSH 管理多个 Git 仓库和以及多个 Github 账号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1640381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

扩展学习|本体研究进展

文献来源: 王向前,张宝隆,李慧宗.本体研究综述[J].情报杂志,2016,35(06):163-170. 一、本体的定义 本体概念被引入人工智能、知识工程等领域后被赋予了新的含义。然而不同的专家学者对本体的理解不同,所给出的定义也有所差异。 人工智能领域的学者Neches(1991)等人对…

eSIM Network搭建指南

有任何关于GSMA\IOT\eSIM\RSP\业务应用场景相关的问题,欢迎W: xiangcunge59 一起讨论, 共同进步 (加的时候请注明: 来自CSDN-iot).

doxygen 辅助阅读代码的神器

简介 Doxygen是一个文档生成工具,主要用于编写编程语言的软件文档。它最初是为C设计的,但后来增加了对C、C#、Java、Objective-C、Python、IDL(在某些情况下还有PHP、C#和D)的支持。Doxygen可以从一组带有文档注释的源代码文件中…

【数据结构】如何创建一棵红黑树(附动图讲解)

一、前言 二、红黑树的概念 三、红黑树的性质 四、红黑树节点的定义 五、红黑树的插入 5.1 节点的初始颜色 5.2 红黑树的调整 六、红黑树的验证 6.1 验证有序 6.2 验证红黑树性质 七、红黑树与AVL树的比较 一、前言 在前面AVL树的学习中,我们知道了如何…

golang 基础知识细节回顾

之前学习golang的速度过于快,部分内容有点囫囵吞枣的感觉,写gorm过程中有很多违反我常识的地方,我通过复习去修正了我之前认知错误和遗漏的地方。 itoa itoa自增的作用在编辑error code时候作用很大,之前编辑springboot的error c…

【Linux学习】(2)OS的简单了解|Linux的基本指令操作

前言 本文将先简单了解什么是操作系统,再讲解一些Linux的基本指令。 一、操作系统的简单了解 1、什么是操作系统(Operating System,简称OS)? OS是一款做软硬件管理的软件。软硬件的体系结构图: 硬件&…

探索高级聚类技术:使用LLM进行客户细分

在数据科学领域,客户细分是理解和分析客户群体的重要步骤。最近,我发现了一个名为“Clustering with LLM”的GitHub仓库,它由Damian Gil Gonzalez创建,专门针对这一领域提供了一些先进的聚类技术。在这篇文章中,我将概…

「 网络安全常用术语解读 」SBOM主流格式SWID详解

国际标准化组织(ISO)和国际电工委员会(International Electrotechnical Commission,IEC)发布了ISO/IEC 19770-2软件标识(Software Identification,SWID)标签标准,该标准定…

Qt模型视图代理之MVD(模型-视图-代理)概念的简单介绍

往期回顾 Qt绘图与图形视图之Graphics View坐标系的简单介绍-CSDN博客 Qt绘图与图形视图之基本图元绘制的简单介绍-CSDN博客 Qt绘图与图形视图之自定义图元实现拖拽、拉伸、旋转功能-CSDN博客 Qt模型视图代理之MVD(模型-视图-代理)概念的简单介绍 一、基本概念 Qt模型视图代理…

前端页面平滑过渡解决方案

一、问题产生 在使用图片作为页面背景时,无法使用transtion进行平滑过渡,直接切换背景又会降低使用体验。 二、解决方式 使用clip-path对背景图片裁剪配合transtion实现平滑过渡的效果 三、效果展示 网址:ljynet.com 四、实现方式 tem…

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习 1、 for i in range(3):Dev.step(4)Dev.turnLeft()2、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()3、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()4、 for…

32.Docker认识

Docker介绍 Docker是一个快速交付应用,运行应用的技术。 1.可以将程序、依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统。 2.运行时利用沙箱机制行程隔离容器,各个应用互不干扰。 3.启动、移除都可以通过一行命令完成&am…

算法学习系列(五十五):背包模型(三)

目录 引言一、潜水员二、背包问题求具体方案三、机器分配四、开心的今明五、金明的预算方案 引言 今天介绍的是背包模型,还是以题目的形式来介绍的。主要讲了背包问题求方案,就是由最优方案递推回去即可。还有就是一些比较经典的背包问题,其…

Spring Boot | Spring Security ( SpringBoot安全管理 )、Spring Security中 的 “自定义用户认证“

目录 : Spring Boot 安全管理 :一、Spring Security 介绍二、Spring Security 快速入门2.1 基础环境搭建 :① 创建Spring Boot 项目② 创建 html资源文件③ 编写Web控制层 2.2 开启安全管理效果测试 :④ 添加 spring-boot-starter-security 启动器⑤ 项目启动测试 三…

Windows server2016关闭ie增强

要关闭Windows Server 2016上的IE增强安全配置,请按照以下步骤操作: 打开“服务器管理器”。点击“本地服务器”。在服务器管理器中,找到“IE增强的安全配置”,点击旁边的“启用”,打开“Internet Explorer增强的安全配…

android init进程启动流程

Android系统完整的启动流程 android 系统架构图 init进程的启动流程 init进程启动服务的顺序 bool Service::Start() {// Starting a service removes it from the disabled or reset state and// immediately takes it out of the restarting state if it was in there.flags_…

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 删除并获得点数(难度⭐⭐)(70)

1. 题目解析 题目链接:740. 删除并获得点数 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 问题分析 本题是「打家劫舍」问题的变种,但核心逻辑依然保持一致。题目要求从给定的数组nums中选择…

【 书生·浦语大模型实战营】作业(七):大模型实战评测

【 书生浦语大模型实战营】作业(七):大模型实战评测 🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学…

「2024年」前端开发常用工具函数总结 TypeScript

前言 在前端开发中,工具函数是提高代码复用率、保持代码整洁和增加开发效率的关键。使用 TypeScript 编写工具函数不仅可以帮助开发者捕捉到更多的类型错误,还可以提供更清晰的代码注释和更智能的代码补全。下面是一些在 TypeScript 中常用的前端开发工…

【iOS】方法交换(Method Swizzling)

文章目录 前言一、原理与注意用法注意要点Method Swizzing涉及的相关API 二、应用场景与实践1.统计VC加载次数并打印2.防止UI控件短时间多次激活事件3.防崩溃处理:数组越界问题4.防KVO崩溃 总结 前言 上文讲到了iOS的消息发送机制,在消息机制中我们了解…