【Linux命令详解 | ssh命令】 ssh命令用于远程登录到其他计算机,实现安全的远程管理

文章标题
- 简介
- 一,参数列表
- 二,使用介绍
- 1. 连接远程服务器
- 2. 使用SSH密钥登录
- 2.1 生成密钥对
- 2.2 将公钥复制到远程服务器
- 3. 端口转发
- 3.1 本地端口转发
- 3.2 远程端口转发
- 4. X11转发
- 5. 文件传输与远程命令执行
- 5.1 文件传输
- 5.1.1 从本地向远程传输文件
- 5.1.2 从远程服务器下载文件
- 5.2 远程命令执行
- 5.2.1 在远程服务器上执行单个命令
- 5.2.2 在远程服务器上执行脚本
- 6. SSH配置和安全性增强
- 6.1 修改SSH配置文件
- 6.2 使用多因素认证
- 6.3 配置防火墙规则
- 6.4 禁用Root登录
- 总结
简介
在编程和系统管理领域,远程管理是一项至关重要的任务。SSH(Secure Shell)命令是一种加密的网络协议,它提供了一种安全的方式,使您能够在不同的计算机之间进行远程连接和管理。通过使用SSH命令,您可以在远程计算机上执行命令、传输文件以及进行安全的远程登录。SSH的加密特性使其成为保护数据和系统安全的理想选择。
一,参数列表
以下表格列出了SSH命令的常用参数及其功能:
| 参数 | 功能 |
|---|---|
-l <username> | 指定登录的用户名 |
-p <port> | 指定远程SSH服务器端口(默认为22) |
-i <identity> | 指定用于身份验证的私钥文件 |
-C | 启用压缩以加速数据传输 |
-X | 开启X11转发,允许远程显示GUI界面 |
-L <local:remote> | 创建本地端口转发 |
-R <remote:local> | 创建远程端口转发 |
二,使用介绍
1. 连接远程服务器
要连接到远程服务器,您可以使用以下命令:
ssh -l username hostname
其中,username是您要登录的远程服务器的用户名,hostname是服务器的主机名或IP地址。执行此命令后,系统将提示您输入密码,验证后即可登录。
2. 使用SSH密钥登录
使用SSH密钥对进行身份验证比使用密码更加安全和方便。以下是使用SSH密钥登录的步骤:
2.1 生成密钥对
在本地计算机上执行以下命令生成密钥对:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/mykey
这将生成一个名为mykey的RSA密钥对,保存在~/.ssh/目录中。
2.2 将公钥复制到远程服务器
执行以下命令将公钥复制到远程服务器,替换username和hostname:
ssh-copy-id -i ~/.ssh/mykey.pub username@hostname
现在您可以使用私钥连接到远程服务器,而无需输入密码:
ssh -i ~/.ssh/mykey username@hostname
3. 端口转发
SSH还支持端口转发,允许您在本地和远程主机之间建立安全的通信通道。以下是两种常见的端口转发方式:
3.1 本地端口转发
通过本地端口转发,您可以将本地计算机上的某个端口映射到远程服务器上。例如,以下命令将本地计算机的端口8080映射到远程服务器的端口80:
ssh -L 8080:localhost:80 username@hostname
3.2 远程端口转发
通过远程端口转发,您可以将远程服务器上的某个端口映射到本地计算机上。例如,以下命令将远程服务器的端口3306(MySQL)映射到本地计算机的端口3306:
ssh -R 3306:localhost:3306 username@hostname
4. X11转发
SSH还允许您在远程计算机上显示GUI应用程序。要启用X11转发,只需在连接时添加-X参数:
ssh -X username@hostname
这将允许您在远程会话中打开图形界面应用程序,并将其显示在本地计算机上。
5. 文件传输与远程命令执行
SSH命令不仅可以用于远程登录,还可以进行文件传输和远程命令执行。下面将介绍如何使用SSH命令进行这些操作。
5.1 文件传输
5.1.1 从本地向远程传输文件
您可以使用scp命令将本地文件传输到远程服务器。以下示例将本地文件file.txt传输到远程主机的/tmp目录:
scp file.txt username@hostname:/tmp
5.1.2 从远程服务器下载文件
使用scp命令也可以从远程服务器下载文件到本地计算机。以下示例将远程服务器上的/path/to/remote/file.txt文件下载到本地当前目录:
scp username@hostname:/path/to/remote/file.txt .
5.2 远程命令执行
5.2.1 在远程服务器上执行单个命令
使用SSH命令,您可以在远程服务器上执行单个命令,而无需登录到远程主机。以下示例演示如何在远程服务器上列出/tmp目录的内容:
ssh username@hostname ls /tmp
5.2.2 在远程服务器上执行脚本
您还可以将本地脚本传输到远程服务器并在远程主机上执行。以下步骤演示了如何实现:
- 传输本地脚本到远程服务器:
scp script.sh username@hostname:/path/to/remote/
- 在远程服务器上执行脚本:
ssh username@hostname /path/to/remote/script.sh
6. SSH配置和安全性增强
SSH命令的安全性和功能可以通过配置文件进行定制和增强。以下是一些常见的配置和安全性增强方法:
6.1 修改SSH配置文件
SSH的配置文件位于/etc/ssh/sshd_config(服务器端)和~/.ssh/config(客户端)。您可以通过修改这些文件来定制SSH的行为,如更改端口、禁用密码登录等。
6.2 使用多因素认证
为了增加安全性,您可以启用多因素认证(MFA)来登录到远程服务器。MFA需要用户提供多个身份验证因素,如密码和验证码。通常使用Google Authenticator或Duo Security等工具实现MFA。
6.3 配置防火墙规则
使用防火墙来限制远程SSH访问。可以配置防火墙规则,仅允许特定IP地址范围的计算机访问SSH端口。
6.4 禁用Root登录
禁用Root用户直接通过SSH登录,以减少风险。您可以通过修改SSH配置文件中的PermitRootLogin选项来实现。
总结
SSH命令是远程管理、文件传输和安全通信的强大工具。通过掌握SSH命令的各种功能和配置选项,您可以更有效地进行远程系统管理,保护数据的安全性,以及确保系统的稳定性。了解和使用SSH命令将使您在编程和系统管理领域更具竞争力,为您的工作带来巨大便利和安全性。
相关文章:
【Linux命令详解 | ssh命令】 ssh命令用于远程登录到其他计算机,实现安全的远程管理
文章标题 简介一,参数列表二,使用介绍1. 连接远程服务器2. 使用SSH密钥登录2.1 生成密钥对2.2 将公钥复制到远程服务器 3. 端口转发3.1 本地端口转发3.2 远程端口转发 4. X11转发5. 文件传输与远程命令执行5.1 文件传输5.1.1 从本地向远程传输文件5.1.2 …...
IP 地址监控工具
地址监控实用程序是一套 IP 工具,包括 IP 地址监控工具、流氓检测工具和 MAC 地址解析器,用于日常监控和管理 DNS 名称、IP和 MAC 地址。地址监控工具用于 IP监控,用于管理 DNS 名称、网络的 IP 和 MAC 地址,并跟踪 IP 地址。 IP…...
基于OpenCV的人脸识别和模型训练系统(万字详解)
前言 我们身边的人脸识别有车站检票,监控人脸,无人超市,支付宝人脸支付,上班打卡,人脸解锁手机。 人脸检测是人脸识别系统组成的关键部分之一,其目的是检测出任意给定图片中的包含的一个或多个人脸&#…...
Docker容器与虚拟化技术:Docker镜像创建、Dockerfile实例
目录 一、理论 1.Docker镜像的创建方法 2.Docker镜像结构的分层 3.Dockerfile 案例 4.构建Systemctl镜像(基于SSH镜像) 5.构建Tomcat 镜像 6.构建Mysql镜像 二、实验 1.Docker镜像的创建 2. Dockerfile 案例 3.构建Systemctl镜像(…...
每天一道leetcode:646. 最长数对链(动态规划中等)
今日份题目: 给你一个由 n 个数对组成的数对数组 pairs ,其中 pairs[i] [lefti, righti] 且 lefti < righti 。 现在,我们定义一种 跟随 关系,当且仅当 b < c 时,数对 p2 [c, d] 才可以跟在 p1 [a, b] 后面…...
651页23万字智慧教育大数据信息化顶层设计及建设方案WORD
导读:原文《651页23万字智慧教育大数据信息化顶层设计及建设方案WORD》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目录 一、 方案背景 1.1 以教育…...
Vue3 使用json编辑器
安装 npm install json-editor-vue3 main中引入 main.js 中加入下面代码 import "jsoneditor";不然会有报错,如jsoneditor does not provide an export named ‘default’。 图片信息来源-github 代码示例 <template><json-editor-vue class…...
centos7 docker离线安装教程
centos7 docker离线安装教程 离线安装包下载# docker离线安装时需要两个安装包:selinux包、docker包, 下载地址: https://download.docker.com/linux/centos/7/x86_64/stable/Packages/selinux包下载 https://download.docker.com/linux/…...
解决爬虫上下行传输效率问题的实用指南
嗨,大家好!作为一名专业的爬虫程序员,我们经常会面临上下行传输效率低下的问题。在处理大量数据时,如果传输效率不高,可能会导致爬虫任务速度慢,甚至中断。今天,我将和大家分享一些解决爬虫上下…...
Vue2入门学习汇总
1.介绍及安装 1.1 介绍 Vue是一套构建用户界面的渐进式框架。Vue只关注视图层,采用自底向上增量开发的设计。Vue的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 学习vue之前主要掌握的知识:HTML、CSS、JavaScript、TypeScript …...
收支明细高效管理,轻松查看和统计时间段内的开销收支明细!
亲爱的用户们,您是否经常需要查看某一时间段内的所有开销和收支明细,并进行自动统计和分析?现在,我们为您带来一款智能财务管家,让您轻松管理财务! 首先,我们要进入晨曦记账本主页面࿰…...
c++ 成绩统计
Q: 有一个二维表格数据,它的值全部是整数,其中存储了若干个选手参与5分钟汉字输入比赛的成绩。数据中每一行是一条记录,每条记录包含两个整数,第1个整数为选手编号,它应该是一个4位整数;第2个整…...
PostgreSQL-UDF用户自定义函数-扩展插件
目录 PostgreSQL-UDF用户自定义函数-扩展插件零、前置条件一、创建 .c 和 .sql 文件创建.c文件创建.sql文件 二、创建 .control 和 Makefile 文件创建 .control 文件创建 Makefile 文件 三、编译 & 链接四、psql(或者其他PG backend)中创建扩展 Post…...
接口测试及接口抓包常用测试工具和方法?
作为测试领域中不可或缺的一环,接口测试和抓包技术在软件开发过程中扮演着至关重要的角色。不论你是新手还是有一些经验的小伙伴,本篇文章都会为你详细介绍接口测试的基本概念、常用测试工具和实际操作技巧,让你轻松掌握这一技能。 接口测试…...
C语言入门_Day 6布尔数与比较运算
目录 前言 1.布尔数 2.比较运算 3.易错点 4.思维导图 前言 除了算术计算以外,编程语言中还会大量使用比较运算,并会根据比较运算的结果是“真”还是“假”,来执行不同的代码。 当你想买一杯奶茶,准备支付的时候,支…...
Java中的JDBC
什么是JDBC 1.Java数据库连接技术(Java DataBase Connectivity),能实现Java程序对各种数据库的访问 2.由一组使用Java语言编写的类和接口(JDBC API)组成,它们位于java.sql以及javax.sql中 JDBC访问数据库的步骤: 步骤 1.Class.forName()加载…...
Vue 安装开发者工具
1.下载开发者工具,下载地址:http://book.wiyp.top/App/Vue3开发者工具-谷歌/Vue3.crx 2.打开谷歌浏览器,点击扩展,点击管理扩展程序。 3.开启开发者模式,将 Vue3 开发者工具文件拖拽到浏览器中进行安装。 注ÿ…...
oracle修改临时表出现已使用的事务正在处理临时表问题
错误提示: ORA-14450:试图访问已经在使用的事务处理临时表 解决方法: 通过第一句sql来查找临时表的object_id ,然后代入第二局sql来生成第三句sql语句。 最后再执行第三句sql语句即可kill session,执行修改表的操作。 SELECT * F…...
RestTemplate
RestTemplate介绍 RestTemplate是Spring提供的用于访问RESTful服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。RestTemplate默认依赖JDK提供http连接的能力(HttpURLConnection),…...
rabbitMQ服务自动停止(已解决
1、 在rabbitmq的sbin目录下操作 rabbitmq-plugins enable rabbitmq_management 2、 自己去rabbitmq_server-3.7.5文件夹下创建一个data,再执行这个命令(用自己的目录哈 set RABBITMQ_BASED:\RabbitTools\RabbitMQ\rabbitmq_server-3.7.5\data 然后去配…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
