『运维备忘录』之 SSH 命令详解

news2024/10/6 16:21:24

运维人员不仅要熟悉操作系统、服务器、网络等知识,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。

今天我们要讲的是 SSH 命令


一、简介 

SSH 全称 Secure Shell(安全外壳协议),是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。SSH由IETF的网络小组(Network Working Group)所制定,它是建立在应用层基础上的安全协议。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris等等,都可运行SSH。

二、SSH 安全验证

从客户端来看,SSH提供两种级别的安全验证。

2.1. 基于口令的安全验证

只要你知道自己账号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

2.2. 基于密匙的安全验证

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

三、SSH 协议组成

SSH 主要由三部分组成。

3.1. 传输层协议 [SSH-TRANS]

提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

3.2. 用户认证协议 [SSH-USERAUTH]

用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

3.3. 连接协议 [SSH-CONNECT]

将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

四、SSH 使用

4.1. 基本用法

ssh	[-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J destination] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-P tag] [-p port] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command [argument ...]]

选项参数:

-4:强制使用IPv4地址
-6:强制使用IPv6地址
-p:远程服务器监听的端口
-b:指定连接的源IP
-v:调试模式
-C:压缩方式
-X:支持x11转发
-t:强制伪tty分配,如:ssh -t 10.0.0.5 ssh -t 10.0.0.6 ssh 10.0.0.7 这个可以实现多跳中的逐级登陆,最后达到可以登录最后一个服务器的目的
-o:option 如:-o StrictHostKeyChecking=no
-i:指定私钥路径,实现基于key验证,默认为: ~/.ssh/id_dsa,~/.ssh/id_ecdsa, ~/.ssh/id_ed25519,~/.ssh/id_rsa

说明:上述列举了常用的选项参数,详细参数说明参见 https://man.openbsd.org/ssh.1 

4.2. 配置文件

SSH 主要有以下几个配置文件:

  • /etc/ssh/ssh_config:系统范围的配置
  • ~/.ssh/config:用户特定的配置
  • ~/.ssh/id_{type}:私钥
  • ~/.ssh/id_{type}.pub:公钥
  • ~/.ssh/known_hosts:登录主机
  • ~/.ssh/authorized_keys:授权登录密钥

相关目录权限需设置为: 

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/id_rsa
$ chmod 600 ~/.ssh/id_rsa.pub

4.3. SSH 连接

$ ssh root@192.168.1.11   # 连接到服务器(默认端口 22)
$ ssh root@192.168.1.1 -p 2222   # 在特定端口上连接

4.4. SSH 执行命令

$ ssh root@192.168.1.11 'ls -lrt'   # 执行远程命令
$ ssh root@192.168.1.11 bash < script.sh   # 调用本地脚本
$ ssh root@192.168.1.11 "tar cvzf - ~/source" > output.tgz   # 从服务器压缩和下载

4.5. SSH ProxyJump

ssh 可以使用 ProxyJump 创建初始和第二个连接,而不是首先通过 SSH 连接到跳板主机,然后在跳板上使用 ssh 连接到远程主机。

注意:ProxyJump 或 -J 标志是在 ssh 7.3 版中引入的。

$ ssh -J proxy_host1 remote_host2
$ ssh -J user@proxy_host1 user@remote_host2

$ ssh -J user@proxy_host1:port1,user@proxy_host2:port2 user@remote_host3   # 多次跳跃

4.6. ssh-copy-id

ssh-copy-id 功能是用于将本地生成的SSH公钥信息复制到远程主机,一般配合 SSH keygen 使用,用于服务器之间的免密登陆配置。

$ ssh-copy-id user@server   # 复制到指定服务器
$ ssh-copy-id server1   # 复制到别名服务器
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@server   # 复制特定密钥

4.7. SCP

SCP(Secure Copy)是基于SSH协议的文件传输工具,用于在本地主机和远程主机之间安全地传输文件,跟 SSH 的差别就是 SCP 指定端口号使用的是大写的 -P。

用法:

scp -P [端口号] [本地文件或者目录] 用户名@IP地址:[远程服务器目录]
scp [本地文件或者目录] [别名]:[远程服务器目录]

示例:

$ scp user@server:/dir/file.ext dest/      # 从远程复制到本地
$ scp user@server:/file user@server:/dir   # 两台服务器之间的副本
$ scp dest/file.ext user@server:/dir       # 从本地复制到远程
$ scp -r user@server:/dir dest/  # 复制整个文件夹
$ scp user@server:/dir/* dest/   # 复制文件夹中的所有文件
$ scp user@server:/dir/* .       # 从服务器文件夹复制到当前文件夹

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

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

相关文章

OpenAI最新模型Sora到底有多强?眼见为实的真实世界即将成为过去!

文章目录 1. 写在前面2. 什么是Sora&#xff1f;3. Sora的技术原理 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感…

Linux-文件文件夹相关命令

目录 常见命令 1. 创建空目录&#xff1a;mkdir 文件夹名 2. 删除空目录&#xff1a;rmdir 文件夹名 3. 创建多级目录&#xff1a;mkdir -p 123/abc 4. 删除非空文件 rm -rf 文件夹名 5. 创建文件&#xff1a; touch 文件名.后缀 / vi 文件名.后缀 6. 删除文件&#x…

挑战杯 基于GRU的 电影评论情感分析 - python 深度学习 情感分类

文章目录 1 前言1.1 项目介绍 2 情感分类介绍3 数据集4 实现4.1 数据预处理4.2 构建网络4.3 训练模型4.4 模型评估4.5 模型预测 5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于GRU的 电影评论情感分析 该项目较为新颖&#xff0c;适合作为竞…

Spring Boot java -jar --spring.profiles.active=dev 失效问题

之前动态部署修改配置文件的情况不多&#xff0c;所以也没注意过&#xff0c;这个问题今天困扰了好久&#xff0c;经过多方查询后得到了解决办法 直接上代码 <profiles><profile><!-- 本地开发环境 --><id>dev</id><properties><profi…

Codeforces Global Round 6

CF1266A Competitive Programmer 题目 给出n个数,问对于每个数,是否可以将这个数的数位重新组合(可以有前导零), 使其可以被60整除,若可以,则输出red,否则,输出cyan 分析 首先来看被60整除需要满足什么条件&#xff0c;因为602*3*10&#x…

2024年 前端JavaScript入门到精通 第一天 笔记

主要讲解JavaScript核心知识&#xff0c;包含最新ES6语法&#xff0c;从基础到API再到高级。让你一边学习一边练习&#xff0c;重点知识及时实践&#xff0c;同时每天安排大量作业&#xff0c;加深记忆&#xff0c;巩固学习成果。 1.1 基本软件与准备工作 1.2 JavaScript 案例 …

Spring MVC(基于 Spring4.x)基础学习

一、SpringMVC概述 二、SpringMVC的HelloWorld 三、使用RequestMapping映射请求 四、映射请求参数&请求头 五、处理模型数据 六、视图和视图解析器 七、RESTful CRUD 八、SpringMVC表单标签&处理静态资源 九、数据转换&数据格式化&数据校验 十、处理JSON:使用…

微信小程序:实现微信小程序应用首页开发 (本地生活首页)

文章目录 小程序应用页面开发1、创建项目并配置项目目录结构配置导航栏效果三、配置 tabBar 效果四、轮播图实现4.1 创建轮播图数据容器4.2 定义一个请求轮播图数据的接口4.3 页面加载调用 数据请求接口 五、九宫格实现5.1 获取九宫格数据5.2 结构和样式的完善六、图片布局实现…

MyBatisPlus 整合 SpringBoot 遇见的问题

【异常】&#xff1a;Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘udf1’ in ‘field list’… SQL: SELECT id,oper_id,btch_id,udf1, FROM scan_cyber Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘udf1’ in ‘field list’; ,"messag…

Python 实现 RSI 指标计算:股票技术分析的利器系列(4)

Python 实现 RSI 指标计算&#xff1a;股票技术分析的利器系列&#xff08;4&#xff09; 介绍算法解释 代码rolling函数介绍计算LCshift函数语法&#xff1a;参数&#xff1a;返回值&#xff1a; 计算涨跌幅函数MAX介绍语法&#xff1a;参数&#xff1a;返回值&#xff1a;示例…

小米4A路由器如何刷OpenWRT并结合内网穿透实现公网远程访问

文章目录 推荐前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址 5. 固定公网地址访问 推荐 前些天发现了一个巨牛的人工智…

USB-C音频转接器:实现边充电边听歌的新选择 | LDR6020P

随着科技浪潮的推进&#xff0c;Type-C接口已逐渐成为电子设备的主流选择&#xff0c;以其正反随意插、高速传输和强大功能等独特优势&#xff0c;在日常生活中占据越来越重要的地位。而Type-C音频转接器&#xff0c;作为连接Type-C接口与音频设备的桥梁&#xff0c;正引领着音…

Springboot集成activiti,低代码整合平台,智慧审批,前端vue

一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;快速开发平台&#xff0c;可插拔工作流服务。 二、项目介绍 本项目拥有用户管理&#xff0c;部门管理&#xff0c;代码生成&#xff0c;系统监管&#xff0c;报表&#xff0c;大屏展示&#xff0c;业…

什么样的服务器是高性能服务器?

首先&#xff0c;高性能服务器应具备高处理能力。随着业务的不断扩展和数据量的爆炸性增长&#xff0c;高性能服务器需要具备强大的计算能力&#xff0c;能够快速处理各种复杂的业务和数据。这要求高性能服务器采用先进的处理器技术&#xff0c;如多核处理器、GPU加速等&#x…

Java 学习和实践笔记(14)

OOP :面向对象编程&#xff0c;object oriented programming. 用表格就可以很好地理解类、对象、属性、以及动作这些概念。 一个表&#xff08;结构&#xff09;就对应一个类&#xff08;结构&#xff09;。所以凡叫什么类&#xff0c;自己就在心里把它叫什么表。反过来&…

Linux——信号(1)

在我们使用Linux系统的时候我们经常会使用ctrl c的方式来终止进程&#xff0c;也 会使用kill命令来杀掉进程&#xff0c;评判进程退出的健康程度中也有信号的身影。那 么Linux中的信号到底是什么&#xff1f;今天就由我来介绍Linux中的信号。1. 信号的概念 要了解计算机中的信…

电比油低,比亚迪出“王炸”,7.98万起 插混双雄荣耀出击

2月19日&#xff0c;比亚迪出“王炸”--秦PLUS、驱逐舰05荣耀版上市&#xff0c;官方指导价7.98万元起&#xff0c;正式开启电动车价格比同级别燃油车更低的时代&#xff0c;加速油转电的变革。 电比油好 油转电再提速 官方起售价7.98万的秦PLUS荣耀版、驱逐舰05荣耀版价好质更…

BUGKU-WEB 留言板1

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 之间写过一题类似的&#xff0c;所以这题应该是有什么不同的那就按照之前的思路进行测试试试提示说&#xff1a;需要xss平台接收flag&#xff0c;这个和之前说的提示一样 相关工具 xss平台&#xf…

结合memo简述useCallback的使用场景

先看一下官方对于useCallback的定义&#xff1a; useCallback是一个允许你在多次渲染中缓存函数的React Hook 这句话包含了俩个因素&#xff1a; useCallback的作用&#xff1a;缓存函数useCallback的使用场景&#xff1a;多次渲染下 什么叫多次渲染呢&#xff1f;组件嵌套的时…

MySQL命令行输入密码后闪退解决方案

使用MySQL8.0的Command&#xff0c;输入密码后闪退&#xff0c;但是如果不输入密码直接回车&#xff0c;却能直接进入MySQL环境&#xff1b;另外&#xff0c;在IDEA中也无法通过密码连接到root。在网上有如下常见的解决方案&#xff1a;(1)移动my.ini、(2)启动MySQL服务等。但是…