news 2026/7/19 10:06:50

SSh的相关操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SSh的相关操作

SSh的相关操作

文章目录

  • 一.基于SSH实现发送命令到远程服务器
  • 二.基于SSH进⾏免密数据传输
  • 三.综合案例基于JDK的安装和操作
    • 一.台机器的jdk的安装和配置
    • 二.把这个软件和相应的配置文件通过scp发送出去
  • 四.基于Ubuntu完成SSH服务配置
    • 一.第⼀步: 需要让三个服务器全部都使⽤itheima⽤⼾登录服务器
    • 二.第二步: 需要让三台服务器都要配置免密操作
    • 三.第三步:依次通过: ssh 主机地址 连接各个服务器, 观察是否需要输⼊密码
  • 综述

一.基于SSH实现发送命令到远程服务器

SSH远程执⾏命令是通过SSH协议连接到远程服务器,并在远程服务器上执⾏指定的命令或脚本, ⽽⽆需直接登录到服务器的终端

相关的命令是

ssh[选项]username@remote_host"command [&&] conmmad"说明: username:远程服务器的⽤⼾名。 remote_host:远程服务器的IP地址或域名。 command:要在远程服务器上执⾏的命令 & : 异步执⾏, 在远程服务器后台运⾏, SSH不会等待命令完成,会⽴即返回并关闭连接 选项:-t: 如果远程命令需要交互式终端(例如 sudo 命令),可以使⽤-t 选项-p: 如果远程服务器的SSH服务运⾏在⾮默认端⼝(默认是22),可以使⽤-p 选项指定端⼝-o: 使⽤-o 选项来指定SSH配置选项,例如禁⽤主机密钥检查(StrictHostKeyChecking=no)-A: 需要转发认证代理连接(例如使⽤SSH密钥进⾏跳板机连接),可以使⽤-A 选项 需求⼀: 在node1中远程查看node2的主机名 ssh root@192.168.88.102"hostname"需求⼆: 在node1中,远程执⾏进⼊root⽤⼾家⽬录,并在此⽬录下创建 a.txt⽂件 说明:如果是执⾏多个命令,可以使⽤分号 或 && 来分隔命令 分号: 仅分隔命令, 不管前⾯得命令是否执⾏成功, 后⾯的命令依然会执⾏ && : 将多个命令合并为⼀个命令, 前⾯得命令如果执⾏失败, 后⾯的命令就⽆法执⾏ ssh root@192.168.88.102"cd ~ && touch a.txt"

``这里面我为大家看一下我所在操作过程之中遇到的问题`

  • 首先呢,就是要注意的是目标主机的IP地址之后是务必要要加上引号的,我当时就没有加上的,然后命令没有跑通,我查了一些资料,之后明白了,其实就是没有加上引号,意思就是连接到目标主机之后,然后执行&&前面的命令然后断开了,在本地的主机执行&&之后的指令

  • 在这里其实,目标主机并没有执行

这个所带来的效果其实是,连接远程主机然后在远程主机里面执行cd /home 命令,之后就断开了,在本地主机执行touch test.txt这个是第一句的指令,然后呢,我在本地主机执行了第二句指令,其实是前面的意思与第一句带来的效果一样,但是呢后面的是在本地主机创建了一个test1.txt,然后呢,我在ubuntu查看是俩个都没有的,其实就是因为我没有加上引号导致的,之后

  • 之后,我加上了引号,就发现了是可以进行操作的。


之后呢,我就没有遇到了什么问题了,这个方面就解决了,然后,就开始了下一个进展了。

二.基于SSH进⾏免密数据传输

SCP(Secure Copy Protocol)是基于 SSH 协议的安全⽂件传输⼯具,可⽤于在本地和远程服务 器之间传输⽂件或⽬录。通过 SCP,数据在传输过程中会被加密,确保安全性

其基本的语法结构是:

源⽂件路径:本地⽂件或远程服务器上的⽂件。 ⽬标路径:本地路径或远程服务器上的路径。 常⽤选项:-r 递归复制整个⽬录(传输⽬录时必⽤)-P 指定 SSH 连接的端⼝号(默认是 22)-i 指定 SSH 使⽤的私钥⽂件(⽤于免密登录)-q 静默模式,不显⽰进度条和调试信息-C 开启压缩传输,提⾼传输速度(适合⼤⽂件或低速⽹络)-l 限制传输速度(单位为 Kbit/s,例如-l 1000 表⽰限制为 1Mbps)

SCP的基本语法是

1.`从本地传输到远程` `scp/local/path/file.txt user@remote:/remote/path/` 2.`从远程传输到本地` `scp user@remote:/remote/path/file.txt/local/path/` 3.`递归传输整个⽬录` scp-r/local/path/diruser@remote:/remote/path/

下面是我操作出来的,大家可以看一下

在这里面呢,其实还有一个问题:这个是远程给ubuntu发送消息的时候是不能发送到根目录下的,由于ubuntu的权限就是远程登录只可以由普通用户的,也就是说普通用户只可以访问~,对于根目录是没有访问权限的,所以我只能用scp信息给家目录传递

三.综合案例基于JDK的安装和操作

一.台机器的jdk的安装和配置

  • 在这里面呢,首先呢,我们应当先从网上下载jdk的rpm包,然后再把其传输到本主机就可以了,当然了,在这里我遇到一些问题,我其实在把这个rpm上传到linux的时候发现了一个问题,就是无论如何上传其实都是会报错的。

  • 然后呢,我研究了一下这个问题,发现了其实就是由于,我当时以为我当时Linux所在的系统权限是root所以在上传文件时也是root这个权限可以对于文件夹拥有读写权限,但是呢,其实就是在上传的时候,是默认了普通用户的权限,所以我们要做的其实就是赋权,用命令chmod 777 software就可以了

真正原因:MobaXterm 不是用 root 身份传文件的
你 SSH 终端里确实是 root(#提示符),但 MobaXterm 左侧那个 SFTP 文件浏览器,走的是另一个会话,它不一定继承你终端的 root 身份:
MobaXterm 建立 SFTP 连接时,可能用的是你最开始填的那个普通用户(比如admins),而不是 root。
哪怕你终端su -切到 root 了,SFTP 面板那边还是原来那个连接,不会自动升级。
所以 SFTP 侧对software目录的身份是 “other”(其他人),而 other 只有 r-x,没写权限 → 报Permission denied
chmod 777后,other 也拿到了 rwx,所以"其他人"(也就是 SFTP 那个连接)就能写了——问题消失

  • 然后我们用rpm -ivh对于rpm进行安装操作就可以了
  • 然后还有一个注意的是我们需要修改配置文件vim /etc/profile

这个是要在文末加上的

  • 最后呢,我们重载一下服务:source /etc/profile
  • 然后,我们在屏幕上输入java javac测试一下就可以了:

二.把这个软件和相应的配置文件通过scp发送出去

  • 1.我们先发送软件包,cd /opt && scp -r jdk1.8.0_241/ root@192.168.88.102:$PWD

说明: $PWD 常量值 表⽰当前所在的路径

  • 2.SCP /etc/profile root@192.168.88.102:/etc/

这里面其实就是opt路径下的,不可以使用$PWD了,

  • 3.最后我们重启一下服务就可以:source /etc/profile

在这里,我们测试一下:

发现成功了。就可以下一步了

四.基于Ubuntu完成SSH服务配置

一.第⼀步: 需要让三个服务器全部都使⽤itheima⽤⼾登录服务器

  • 首先呢我们需要都同时打开三台服务器,务必要要保证要小于我们电脑的内存,否则会打不开的
  • 接着我们打开了之后,使用以下命令增加账户itheima
useradd itheima passwd itheima 123456

然后呢,三台主机都同时输入这几行命令就可以了

  • 最后呢,我们使用三台主机所对应的IP地址在mx上面只要把主机名修改为itheima,登录就可以了

就像如此的

二.第二步: 需要让三台服务器都要配置免密操作

这个和我的上一个博客是一样的,内容也一样的,只不过操作起来比较麻烦的,

我们首先是在每台主机里面下载对应的公钥和私钥,然后呢,再以此把对应的公钥发送三分,操作三次就可以了

  • 下载对应的公钥和私钥
ssh-keygen-f ~/.ssh/id_rsa-P''-q && ll ~/.ssh

  • 二.我们开始把对应的公钥发送三分
ssh 192.168.149.128 ssh 192.168.149.129 ssh 192.168.149.131

三台主机其实都是如此写的,只不过我们要注意的是需要一行一行操作的

三.第三步:依次通过: ssh 主机地址 连接各个服务器, 观察是否需要输⼊密码

依次通过: ssh 主机地址 连接各个服务器, 观察是否需要输⼊密码 建议⽅案, ⼀个节点 ⼀个节点依次测试, 确保不漏测 以node1为例: ssh 192.168.88.101 通过exit退回--> node1 ssh 192.168.88.102 通过exit退回--> node1 ssh 192.168.88.130 通过exit退回--> node1

这个地方是没有上面难度的,和之前的博客一样的,我把我其中一台主机样图给展示出来

综述

今天在操作的时候,其实是和之前的ssh命令一样的,只不过扩充了一些其他的内容,比如scp,ssh远程传输命令等等,最后我们在综合的案例当中发现了,这个其实我在最后进行网络测试的时候是瞎弄的,就比如是我们不是在测完一个ip的时候不是应该回退测试下一个ip对吧,但是呢,我当时没有注意,就想当然的操作了,这是一点,其实也挺好的,这个命令这些天学习了,博客其实也写了,公钥,私钥其实也明白了,关键是这个命令对于以后的脚本操作有积极意义的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 10:04:20

Chests Anywhere:星露谷物语分布式存储管理系统的架构设计与实现

Chests Anywhere:星露谷物语分布式存储管理系统的架构设计与实现 【免费下载链接】StardewMods Mods for Stardew Valley using SMAPI. 项目地址: https://gitcode.com/gh_mirrors/st/StardewMods Chests Anywhere 是一个针对星露谷物语的存储管理系统扩展模…

作者头像 李华
网站建设 2026/7/19 10:03:13

APM工具:应用性能监控实战

557|APM工具:应用性能监控实战 上篇文章讲了可观测性的理论,这篇文章讲实操——APM工具。 APM = Application Performance Monitoring(应用性能监控) 一句话解释 APM工具:自动采集应用的日志、指标、链路追踪数据,提供可视化的监控和分析能力。 常见的APM工具 工具…

作者头像 李华
网站建设 2026/7/19 10:02:46

如何快速解决输入法词库不兼容问题:深蓝词库转换完整指南

如何快速解决输入法词库不兼容问题:深蓝词库转换完整指南 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 你是否经常遇到输入法词库无法在不同设备或系统…

作者头像 李华
网站建设 2026/7/19 10:02:44

哔咔漫画下载器:打造个人离线漫画图书馆的智能解决方案

哔咔漫画下载器:打造个人离线漫画图书馆的智能解决方案 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh…

作者头像 李华
网站建设 2026/7/19 10:01:32

stack、queue 与 priority_queue 底层剖析

C STL stack、queue 与 priority_queue 底层剖析:容器适配器的设计哲学 这篇不聊 push pop 怎么用。如果你还在背接口,先去看 cppreference。这里只干三件事: 容器适配器到底是什么设计模式,为什么 STL 不把 stack 和 queue 算进&…

作者头像 李华