Linux SSH命令实战教程,提升你的服务器管理基本功!

news2024/11/24 20:41:03

在这里插入图片描述

前言

大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第62篇文章。

专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。

另外为了帮助大家更好的学习英语,我创建了 从零开始学英语社区,欢迎点击进入社区,一起交流学习:
点击可直达:

从零开始学英语社区

文章目录

  • 前言
  • 一. SSH命令介绍
  • 二. SSH语法格式及常用参数
  • 三. 参考案例
    • 3.1 查看ssh版本
    • 3.2 链接到远程主机
    • 3.3 连接远程主机并指定端口
    • 3.4 通过ssh运行远程的shell命令
    • 3.5 设置登录时候的提示信息
      • banner 和 /etc/motd的区别:
  • 总结

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

一. SSH命令介绍

SSH(Secure Shell)是Linux系统中用于远程访问主机、传输数据的协议。通过使用SSH协议,可以在不同的计算机之间建立一个安全的通信管道,保证数据传输过程的安全性,并能够有效地防止未经授权的访问和利用攻击者的拦截和窃听。

二. SSH语法格式及常用参数

ssh常用的语法格式:

ssh [options] [user@]hostname [command]

常用参数如下:

参数描述
-p指定SSH服务器的端口号,默认值是22;
-l指定登录远程主机的用户名;
-q启用安静模式,不显示连接过程的提示信息;
-X开启X11转发模式,允许在SSH会话中运行图形化界面程序;
-i指定私钥文件的路径;
-C启用压缩传输,加快数据传输速度;
-t强制分配伪终端,即远程终端的操作和本地终端一样;
-N不执行远程命令,仅作为端口转发或隧道使用;
-f在后台运行SSH会话,不占用终端;
-v启用详细模式,显示SSH连接和认证过程的详细信息。

三. 参考案例

3.1 查看ssh版本

查看ssh的版本信息,可以使用:-V参数

[root@mufeng163 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
[root@mufeng163 ~]# 

linux一般都自带openssh,只要能够远程登录,就说明ssh是已经开着的

3.2 链接到远程主机

连接远程主机的命令格式:

  • 方法一:

ssh [远程主机用户名] @[远程服务器主机名或IP地址] -p port

如果用root进程登录远程主机可以这样:

[root@mufengssh]# ssh 192.168.0.22

普通用户登录是这样的:

[root@mufeng163 ~]# useradd mufenggrow && echo 123456 | passwd --stdin mufenggrow
更改用户 mufenggrow 的密码 。
passwd:所有的身份验证令牌已经成功更新。

[root@mufeng163 ~]# ssh mufenggrow@127.0.0.1

The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:xIsWK0miEQ+TcpYNJOt98XKh7W0ZtJYWbHgO0L0+z6A.
ECDSA key fingerprint is MD5:c7:87:1a:9e:9c:fb:3f:fc:a0:e4:04:d6:8e:24:26:af.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
mufenggrow@127.0.0.1's password: 
[mufenggrow@mufeng163 ~]$ 

第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连
接,输入yes 后登录,这时系统会将远程服务器信息写入用户主目录下的$HOME/.ssh/known_hosts文件中,下次再进行登录时因为保存有该主机信息就不会再提示了

RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

  • 方法二:
    ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port

此方法了解即可:

例:ssh -l mufenggrow 192.168.0.22
注:-l login_name

3.3 连接远程主机并指定端口

首先修改一下ssh的端口号:

[root@mufeng163 ~]# vim /etc/ssh/sshd_config 

[root@mufeng163 ~]# grep ^Port /etc/ssh/sshd_config
Port 10022

修改完成后进行重启:

[root@mufeng163 ~]# systemctl  restart sshd

开始登录:

ssh 192.168.1.163 -p 10022

3.4 通过ssh运行远程的shell命令

[root@mufeng163 ~]# ssh -t -p 10022 mufenggrow@127.0.0.1 'touch aaa;ls -l' 
mufenggrow@127.0.0.1's password: 
总用量 0
-rw-rw-r--. 1 mufenggrow mufenggrow 0 610 10:42 aaa
Connection to 127.0.0.1 closed.

-t选项分配了一个伪终端PTY,而-p选项指定了SSH连接使用的端口。命令ls -l放在单引号中传给远程服务器执行。

3.5 设置登录时候的提示信息

首先编辑一个文件,如bannertest.txt,文件内容自行定义。然后打开/etc/ssh/sshd_config文件并查找下面这样的行,把地址写对:

[root@mufeng163 ~]# echo aaa > /root/bannertest.txt
[root@mufeng163 ~]# vim /etc/ssh/sshd_config 
[root@mufeng163 ~]# grep ^Banner !$
grep ^Banner /etc/ssh/sshd_config
Banner /root/bannertest.txt
[root@mufeng163 ~]# systemctl  restart sshd
[root@mufeng163 ~]# ssh 127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:xIsWK0miEQ+TcpYNJOt98XKh7W0ZtJYWbHgO0L0+z6A.
ECDSA key fingerprint is MD5:c7:87:1a:9e:9c:fb:3f:fc:a0:e4:04:d6:8e:24:26:af.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
aaa
root@127.0.0.1's password: 
Last login: Sat Jun 10 10:53:35 2023 from 192.168.1.4

可以看到aaa,显示在文本中了。

banner 和 /etc/motd的区别:

SSH协议在建立连接之前,可以通过banner的形式向连接方发送欢迎信息或者警示信息;而/etc/motd属于Linux系统中用于向登录用户显示某些消息的文件。

banner在客户端连接时就会被发送,不需要用户登录即可显示,通常被用于在SSH连接之前向用户展示重要的信息或者警告。在SSH服务器中,可以通过编辑/etc/ssh/sshd_config文件来配置banner信息。

而/etc/motd 则是在用户登录后显示的一条信息,包括系统版本、当前登录用户、主机名等信息。系统管理员可以通过编辑/etc/motd文件来定制显示的信息,以便向用户提供更多信息。/etc/motd重启或动态更新后将重新显示。

因此,banner和/etc/motd之间主要的区别是banner是在连接之前显示的欢迎信息或警告信息,而/etc/motd则是在登录之后以交互式的方式向用户显示信息。

总结

ssh命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

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

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

相关文章

java生成、识别条形码和二维码

一、概述 使用 zxing 开源库 Zxing主要是Google出品的,用于识别一维码和二维码的第三方库主要类:BitMatrix 位图矩阵MultiFormatWriter 位图编写器MatrixToImageWriter 写入图片 可以生成、识别条形码和二维码 内置三种尺寸:enum Size {SMALL, MIDDLE, …

【习题】习题 2 - 编写程序求当前机器的字节序

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、字节序影响 3、示例代码 4、总结 1、缘起 在计算机中,字节序(Byte Order)指定了…

一文带你彻底掌握Java 中的Stream流(详细)

本文目录 学习目标中间操作Filter(过滤)Map(转换)Sorted(排序)Distinct(去重)Limit(限制)Skip(跳过)Peek(展示) 终止操作forEach(循环)Collect(收集)Count(计数)Reduce(聚合)AnyMatch(任意匹配)AllMatch(全部匹配)NoneMatch(无匹配) 使用Stream流的优缺点:优点&…

投票活动小程序开发搭建

由于小程序是基于微信开发者工具编写的,因此我先介绍一下需要使用的工具和技术: - 微信开发者工具:用于开发、调试和发布小程序。 - 小程序云开发:用于存储数据和进行后端逻辑处理。 - uni-app框架:uni-app 是一个使…

组件更新的底层逻辑

第一种更新:组件更新的逻辑,当修改了相关状态,组件会更新 1.触发shouldComponentUpdate 周期函数:是否允许更新 shouldComponentUpdate(nextProps, nextState) { // nextState: 存储要修改的最新状态 // this. state:存储的还是修改前的状态…

分布式系统常见的数据分区算法

文章目录 顺序分区轮询分区算法时间片轮转分区算法数据块分区算法业务主题分区算法 哈希分区节点取模分区算法一致性哈希分区算法(重点)1.Hash环2.容错性和可扩展性3.数据倾斜4.带有限负载的一致性哈希算法5.带虚拟节点的一致性哈希算法 虚拟槽分区算法&…

个人开发者或学生必备的100元云服务器大全

100元以内云服务器配置大全,预算100元可以买到什么配置的云服务器?100元可以选到腾讯云2核2G3M带宽轻量服务器、阿里云2核2G3M带宽轻量应用服务器、UCloud香港轻量应用云主机30M带宽、华为云HECS云服务器2核4G配置等,阿腾云分享预算100元可选…

华为OD机试真题 JavaScript 实现【数列描述】【2023 B卷 100分】,附详细解题思路

一、题目描述 有一个数列a[N] (N60),从a[0]开始,每一项都是一个数字。数列中a[n1]都是a[n]的描述。其中a[0]1。 规则如下: a[0]:1 a[1]:11(含义:其前一项a[0]1是1个1,即“11”。表示a[0]从左到右,连续出…

GitOps的12个痛点

如今很多团队采用GitOps作为标准部署流程,这篇文章总结了GitOps的12个痛点,从而帮助我们在采用这一实践的过程中更好的理解GitOps的优势和缺陷,选择适合自己的解决方案。原文:The pains of GitOps 1.0[1] GitOps作为软件发布实践有…

Git与Gitee远程仓库的系列操作

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Git ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正&#x…

Prometheus插件安装(mysql_exporter)

简介 mysql_exporter是用来收集MysQL或者Mariadb数据库相关指标的,mysql_exporter需要连接到数据库并有相关权限。既可以用二进制安装部署,也可以通过容器形式部署,但为了数据收集的准确性,推荐二进制安装。 一,下载安…

ASO优化之如何维护品牌词

App Store的关键词优化一般可以分为品牌词,竞品词和行业词,长度要控制在100字符以内。所以我们可以通过投放竞品词,将竞争对手的部分的流量占为己有,维护品牌词的有效方式有:1,率先拿下自己家的品牌词。 2…

『 前端三剑客 』:CSS选择器

文章目录 一 . 基本语法二 . CSS 引入方式2.1 内部样式表2.2 内联样式表2.3 外部样式表 三 . CSS选择器3.1 基础选择器1 . 标签选择器2 . 类选择器3 . id 选择器4 . 通配符选择器 3.2 复合选择器5 . 后代选择器6 . 子代选择器7 . 并集选择器8 . 伪类选择器 上一篇文章我们介绍了…

ProGuard 进阶系列(一): 运行源代码

在前面的文章深入 Android 混淆实践:ProGuard 通关秘籍和深入 Android 混淆实践:多模块打包爬坑之旅中,已经讲到了如何在 Android 中使用 ProGuard,以及如何自定义实现混淆规则的生成。为了更深入地理解 ProGuard 的细节&#xff…

Python3数据分析与挖掘建模(11)复合分析-分组分析与实现示例

1. 分组分析 1.1 概述 分组与钻取是数据分析中常用的技术,用于对数据进行聚合和细分分析。它可以帮助我们从整体数据中获取特定维度的汇总信息,并进一步钻取到更详细的子集数据中进行深入分析。 分组(Grouping)是指根据某个或多…

chatgpt赋能python:Python怎么写绝对值

Python怎么写绝对值 在Python编程语言中,有很多常用函数。其中包括求绝对值的函数。在这篇文章中,我们将介绍如何在Python中使用绝对值函数,并提供一些示例。 什么是绝对值函数? 绝对值函数是一个数学中常用的函数,…

WPF开发txt阅读器4:字体控件绑定

文章目录 控件折叠字体尺寸绑定选择字体字体的中文名称 txt阅读器系列: 需求分析和文件读写目录提取类💎列表控件与目录 控件折叠 作为一个txt阅读器,至少能够设置文字字体、尺寸,段落行间距等,还得有护眼模式等一系…

2023 年最新版Java面试题及答案整理(完整版,超详细)

程序员一步入中年,不知不觉便会被铺天盖地的“危机感”上身,曾经的那个少年已经不在,时间就是这样公平。就算你能发明Java语言,随着时间的推移,你注定还是要成为慢慢变蔫的茄子,缓缓变黑的葡萄。 看着金九…

支付宝商家多个账号下的账单管理工具配置指南

大家好,我是小悟 阅读这篇文章之前,结合这篇【有了这个工具,支付宝商家多个账号下的账单管理更方便了】干货食用更佳。 商户管理 这里录入的是商家应用相关信息 商户名称:应用id所属的应用名称。 应用id:支付宝开放…

Django新手必看:如何创建应用和定义数据表。(详细讲解)

Django新手必看:如何创建应用和定义数据表。 1. Django创建应用1.1 创建应用1.2 应用的添加 2. Django ORM2.1 定义数据表2.2 定义项目数据表2.3 通用字段选项2.4 外键使用2.5 应用数据库迁移 🏘️🏘️个人简介:以山河作礼。 &…