上位机知识篇---SSHSCP密钥与密钥对
文章目录
- 前言
- 第一部分:SCP(Secure Copy Protocol)
- 功能
- 使用方法
- 1.从本地复制到远程主机
- 2.从远程主机复制到本地
- 3.复制整个目录
- 4.指定端口
- 5.压缩传输
- 第二部分:SSH(Secure Shell)
- 功能
- 使用方法
- 1.远程登录
- 2.指定端口
- 3.执行远程命令
- 4.使用密钥认证
- 5.SSH配置文件
- 6.端口转发
- scp\ssh总结
- 第三部分:密钥与密钥对
- 基本概念
- 1.密钥(Key)
- 2.密钥对(Key Pair)
- 3.生成密钥对
- 生成RSA密钥对
- 生成ED25519密钥对
- 4.密钥对存储
- 生成的文件
- 设置密钥密码
- 5.使用密钥对
- 6.使用密钥登录远程主机
- 7.SSH配置文件简化登录
- 8.使用密钥进行Git操作
- 9.使用SSH协议克隆仓库
- 10.密钥管理
- 备份密钥对
- 更改密钥密码
- 删除或替换密钥对:
- 密钥、密钥对总结
- 总结
前言
以上就是今天要讲的内容,本文仅仅简单介绍了SCP、SSH、密钥、密钥对。
第一部分:SCP(Secure Copy Protocol)
功能
SCP(Secure Copy Protocol)是一种基于SSH协议的文件传输工具,用于在本地和远程主机之间安全地复制文件。它利用SSH的加密机制,确保数据传输的安全性。
使用方法
1.从本地复制到远程主机
scp /path/to/local/file username@remote_host:/path/to/remote/directory
/path/to/local/file:本地文件路径。
username@remote_host:远程主机的用户名和地址。
/path/to/remote/directory:远程主机上的目标目录。
2.从远程主机复制到本地
scp username@remote_host:/path/to/remote/file /path/to/local/directory
username@remote_host:/path/to/remote/file:远程主机上的文件路径。
/path/to/local/directory:本地目标目录。
3.复制整个目录
使用 -r 选项递归复制目录:
scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory
4.指定端口
如果SSH服务使用非默认端口(默认22),使用 -P 选项指定端口:
scp -P 2222 /path/to/local/file username@remote_host:/path/to/remote/directory
5.压缩传输
使用 -C 选项启用压缩,加快传输速度:
scp -C /path/to/local/file username@remote_host:/path/to/remote/directory
第二部分:SSH(Secure Shell)
功能
SSH(Secure Shell)是一种加密网络协议,用于安全地访问和管理远程主机。它提供加密的通信通道,支持远程登录、命令执行和文件传输。
使用方法
1.远程登录
ssh username@remote_host
username:远程主机的用户名。
remote_host:远程主机的地址。
2.指定端口
如果SSH服务使用非默认端口,使用 -p 选项指定端口:
ssh -p 2222 username@remote_host
3.执行远程命令
可以在登录时直接执行命令:
ssh username@remote_host "command"
例如:
ssh username@remote_host "ls -l /path/to/directory"
4.使用密钥认证
使用SSH密钥对进行认证,避免每次输入密码:
生成密钥对:
ssh-keygen -t rsa -b 4096
将公钥复制到远程主机:
ssh-copy-id username@remote_host
使用密钥登录:
ssh -i /path/to/private/key username@remote_host
5.SSH配置文件
使用 ~/.ssh/config 文件简化连接:
Host myserver
HostName remote_host
User username
Port 2222
IdentityFile /path/to/private/key
然后可以通过别名连接:
ssh myserver
6.端口转发
本地端口转发:
ssh -L local_port:remote_host:remote_port username@remote_host
远程端口转发:
ssh -R remote_port:local_host:local_port username@remote_host
scp\ssh总结
SCP:用于安全地复制文件,支持目录和压缩传输。
SSH:用于安全地远程登录和执行命令,支持端口转发和密钥认证。
两者都基于SSH协议,确保数据传输的安全性。
第三部分:密钥与密钥对
基本概念
1.密钥(Key)
密钥是用于加密和解密数据的字符串,分为公钥和私钥。
公钥(Public Key):可以公开,用于加密数据或验证签名。
私钥(Private Key):必须保密,用于解密数据或生成签名。
2.密钥对(Key Pair)
密钥对由公钥和私钥组成,通常用于非对称加密。
公钥和私钥在数学上相关,但无法从公钥推导出私钥。
3.生成密钥对
使用 ssh-keygen 生成密钥对:
ssh-keygen 是生成SSH密钥对的常用工具。
生成RSA密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa:指定密钥类型为RSA。
-b 4096:指定密钥长度为4096位。
-C “your_email@example.com”:添加注释,通常为邮箱。
生成ED25519密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"
-t ed25519:指定密钥类型为ED25519。
4.密钥对存储
生成过程中会提示输入存储路径和文件名,默认路径为 **~/.ssh/id_rsa(RSA)**或 ~/.ssh/id_ed25519(ED25519)。
生成的文件
id_rsa 或 id_ed25519:私钥文件。
id_rsa.pub 或 id_ed25519.pub:公钥文件。
设置密钥密码
生成过程中会提示设置密钥密码(passphrase),增加安全性。
每次使用密钥时需输入密码。
5.使用密钥对
将公钥添加到远程主机:
使用 ssh-copy-id 将公钥复制到远程主机的 ~/.ssh/authorized_keys 文件中:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_host
手动复制公钥:
复制公钥内容:
cat ~/.ssh/id_rsa.pub
将内容粘贴到远程主机的 ~/.ssh/authorized_keys 文件中。
6.使用密钥登录远程主机
使用私钥进行SSH登录:
ssh -i ~/.ssh/id_rsa username@remote_host
如果私钥文件为默认路径(~/.ssh/id_rsa 或 ~/.ssh/id_ed25519),可省略 -i 选项:
ssh username@remote_host
7.SSH配置文件简化登录
编辑 ~/.ssh/config 文件,添加以下内容:
Host myserver
HostName remote_host
User username
IdentityFile ~/.ssh/id_rsa
然后使用别名登录:
ssh myserver
8.使用密钥进行Git操作
将**公钥添加到Git服务(如GitHub、GitLab)**的SSH密钥设置中。
9.使用SSH协议克隆仓库
git clone git@github.com:username/repository.git
10.密钥管理
备份密钥对
将 ~/.ssh 目录下的私钥和公钥文件备份到安全位置。
更改密钥密码
使用 ssh-keygen 更改密钥密码:
ssh-keygen -p -f ~/.ssh/id_rsa
删除或替换密钥对:
删除旧的密钥文件并生成新的密钥对。
更新远程主机和Git服务中的公钥。
密钥、密钥对总结
- 密钥对:由公钥和私钥组成,用于非对称加密。
- 生成密钥对:使用 ssh-keygen 生成RSA或ED25519密钥对。
- 使用密钥对:将公钥添加到远程主机,使用私钥进行SSH登录或Git操作。
- 密钥管理:备份、更改密码、删除或替换密钥对。
- 通过密钥对认证,可以提高安全性并简化远程登录和文件传输操作。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了SCP、SSH、密钥、密钥对。
相关文章:
上位机知识篇---SSHSCP密钥与密钥对
文章目录 前言第一部分:SCP(Secure Copy Protocol)功能使用方法1.从本地复制到远程主机2.从远程主机复制到本地3.复制整个目录4.指定端口5.压缩传输 第二部分:SSH(Secure Shell)功能使用方法1.远程登录2.指…...
智慧物流新引擎:ARM架构工控机在自动化生产线中的应用
工业自动化程度的不断提升,对高性能、低功耗和高可靠性的计算设备需求日益增长。ARM架构工控机因其独特的优势,在多个工业领域得到了广泛应用。本文将深入探讨ARM架构工控机的特点及其在具体工业场景中的应用。 ARM架构工控机的主要优势 高效能与低功耗…...
[MySQL]2-MySQL索引
目录 1.索引🌟 1.1索引结构 B树 B树 聚簇索引(一级索引)与非聚簇索引(二级索引) 回表操作 1.2索引碎片 清理索引碎片的方法 1.3索引匹配方式🌟 在数据列上使用函数或者计算会导致索引失效的原因 …...
DeepSeek冲击下,奥特曼刚刚给出对AGI的「三个观察」,包括成本速降
来源 | 机器之心 今天凌晨,OpenAI CEO 再次发布长文,重申自己对于 AGI 的三个观察。 核心观点如下: 1. 人工智能模型的智能大致等于用于训练和运行该模型的资源的对数。 2. 使用一定水平的人工智能的成本每 12 个月就会下降约 10 倍&#x…...
新数据结构(8)——包装类
基本数据类型(轻点) Java基本数据类型在内存中占用固定的大小,并且直接存储值,而不是对象的引用 整数类型 byte:8位,存储范围从-128到127 short:16位,存储范围从-32,768到32,767 …...
P5:使用pytorch实现运动鞋识别
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 我的环境 语言环境:python 3.7.12 编译器:pycharm 深度学习环境:tensorflow 2.7.0 数据:本地数据集-运动鞋 一…...
讲解下SpringBoot中MySql和MongoDB的配合使用
在Spring Boot中,MySQL和MongoDB可以配合使用,以充分发挥关系型数据库和非关系型数据库的优势。MySQL适合处理结构化数据,而MongoDB适合处理非结构化或半结构化数据。以下是如何在Spring Boot中同时使用MySQL和MongoDB的详细讲解。 1. 添加依…...
《手札·行业篇》开源Odoo MES系统与SKF Observer Phoenix API在化工行业的双向对接方案
一、项目背景 化工行业生产过程复杂,设备运行条件恶劣,对设备状态监测、生产数据采集和质量控制的要求极高。通过开源Odoo MES系统与SKF Observer Phoenix API的双向对接,可以实现设备状态的实时监测、生产数据的自动化采集以及质量数据的同步…...
数据结构与算法之数组: LeetCode 905. 按奇偶排序数组 (Ts版)
按奇偶排序数组 https://leetcode.cn/problems/sort-array-by-parity/description/ 描述 给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。 示例 1 输入:n…...
【STM32】HAL库Host MSC读写外部U盘及FatFS文件系统的USB Disk模式
【STM32】HAL库Host MSC读写外部U盘及FatFS文件系统的USB Disk模式 在先前 分别介绍了FatFS文件系统和USB虚拟U盘MSC配置 前者通过MCU读写Flash建立文件系统 后者通过MSC连接电脑使其能够被操作 这两者可以合起来 就能够实现同时在MCU、USB中操作Flash的文件系统 【STM32】通过…...
docker nginx 配置文件详解
在平常的开发工作中,我们经常需要访问静态资源(图片、HTML页面等)、访问文件目录、部署项目时进行负载均衡等。那么我们就会使用到Nginx,nginx.conf 的配置至关重要。那么今天主要结合访问静态资源、负载均衡等总结下 nginx.conf …...
如何实现华为云+deepseek?
在华为云上实现跨账号迁移数据或部署DeepSeek模型,可以通过以下步骤完成: 跨账号数据迁移 创建委托:在源账号中创建一个委托(Agency),授予目标账号访问数据的权限。 复制镜像:在源账号中&…...
【学习笔记】计算机网络(三)
第3章 数据链路层 文章目录 第3章 数据链路层3.1数据链路层的几个共同问题3.1.1 数据链路和帧3.1.2 三个基本功能3.1.3 其他功能 - 滑动窗口机制 3.2 点对点协议PPP(Point-to-Point Protocol)3.2.1 PPP 协议的特点3.2.2 PPP协议的帧格式3.2.3 PPP 协议的工作状态 3.3 使用广播信…...
稀土抑烟剂——为汽车火灾安全增添防线
一、稀土抑烟剂的基本概念 稀土抑烟剂是一类基于稀土元素(如稀土氧化物和稀土金属化合物)开发的高效阻燃材料。它可以显著提高汽车内饰材料的阻燃性能,减少火灾发生时有毒气体和烟雾的产生。稀土抑烟剂不仅能提升火灾时的安全性,…...
Qt Pro、Pri、Prf
一、概述 1、在Qt中,通常使用.pro(project)、pri(private include)、prf(project file)三种文件扩展名来组织项目。对于模块化编程,Qt提供了Pro和Pri,Pro管理项目,Pri管理模块。 2、pro文件是Qt项目的核心文件,包含了…...
基于AIOHTTP、Websocket和Vue3一步步实现web部署平台,无延迟控制台输出,接近原生SSH连接
背景:笔者是一名Javaer,但是最近因为某些原因迷上了Python和它的Asyncio,至于什么原因?请往下看。在着迷”犯浑“的过程中,也接触到了一些高并发高性能的组件,通过简单的学习和了解,aiohttp这个…...
如何在MacOS上查看edge/chrome的扩展源码
步骤 进入管理扩展页面点击详细信息复制对应id在命令行键入 open ~/Library/Application Support/Microsoft Edge/Default/Extensions/${你刚刚复制的id} 即可打开访达中对应的更目录 注意 由于原生命令行无法直接处理空格 ,所以需要加转义符\,即:open ~/Librar…...
【xdoj-离散线上练习H】T234(C++)
解题心得: 写递归函数的时候,首先写终止条件,这有助于对整个递归函数的把握。 题目:输入集合A和B,输出A到B上的所有函数。 问题描述 给定非空数字集合A和B,求出集合A到集合B上的所有函数。 输入格式 第一行…...
Docker Desktop Windows 安装
一、先下载Docker desktop WIndows 下载地址 二、安装 安装超简单 一路 下一步 三、安装之后,桌面会出现一个 小蓝鲸图标,打开它 》更新至最新版本,不然小蓝鲸打开,一会就退出了。 》wsl --update (这个有时比较慢…...
springCloud-2021.0.9 之 GateWay 示例
文章目录 前言springCloud-2021.0.9 之 GateWay 示例1. GateWay 官网2. GateWay 三个关键名称3. GateWay 工作原理的高级概述4. 示例4.1. POM4.2. 启动类4.3. 过滤器4.4. 配置 5. 启动/测试 前言 如果您觉得有用的话,记得给博主点个赞,评论,收…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
