SSH远程连接工具

SSH远程连接工具摘自 https www cnblogs com ftl1012 p ssh htmlhttps www cnblogs com youngerger p 9104144 htmlSSH 是 Linux 下进行远程连接的基本工具 但是如果仅仅用它来登录那可是太浪费啦 SSH 命令可是完成远程操作的神器啊 借助它我们可以把很多的远程操作自动化掉 下面就

摘自:

       https://www.cnblogs.com/ftl1012/p/ssh.html

       https://www.cnblogs.com/youngerger/p/9104144.html

SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进行一个小小的总结。

 SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。

ssh服务端由2部分组成: openssh(提供ssh服务)    openssl(提供加密的程序)

ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具进行连接。

 

1.登录                   

       ssh -p22 omd@192.168.25.137 //远程连接默认连接用户的home目录               

2.直接执行命令  -->最好全路径                   

       ssh root@192.168.25.137 ls -ltr /backup/data                       

       ==>ssh root@192.168.25.137 /bin/ls -ltr /backup/data               

3.查看已知主机                    

        cat /root/.ssh/known_hosts

4.ssh远程执行sudo命令

       ssh -t omd@192.168.25.137 sudo rsync hosts /etc/

5.scp -->远程文件的安全(加密)拷贝                   

       scp -P22 -r -p /home/omd/h.txt omd@192.168.25.137:/home/omd/                             

   scp是加密远程拷贝,cp为本地拷贝。可以推送过去,也可以拉过来。每次都是全量拷贝(效率不高,适合第一次),增量拷贝用rsync

6.ssh自带的sftp功能               

             1.Window和Linux的传输工具                   

                  wincp   filezip                   

               sftp  -->基于ssh的安全加密传输                   

               samba   

             2.sftp客户端连接                   

                sftp -oPort=22 root@192.168.25.137

//linux下使用命令:sftp -oPort=22 root@x.x.x.x                             

                put /etc/hosts /tmp    

//put加客户端本地路径上传               

                get /etc/hosts /home/omd                              

//get下载服务器端内容到本地 

远程执行命令

如果我们要查看一下某台主机的磁盘使用情况,是不是必须要登录到目标主机上才能执行 df 命令呢?当然不是的,我们可以使用 ssh 命令在远程的主机上执行 df 命令,然后直接把结果显示出来。整个过程就像是在本地执行了一条命令一样:

$ ssh  "df -h"

那么如何一次执行多条命令呢?其实也很简单,使用分号把不同的命令隔起来就 OK 了:

$ ssh  "pwd; cat hello.txt"

SSH远程连接工具

执行需要交互的命令

有时候我们需要远程执行一些有交互操作的命令。

$ ssh  "sudo ls /root" $ ssh  "top"

SSH远程连接工具

SSH远程连接工具

执行多行的命令

有时候我们可能需要随手写几行简单的逻辑,这也没有问题,ssh 能轻松搞定!

SSH远程连接工具

SSH远程连接工具

当我们在命令中引用了变量时会怎么样呢?

SSH远程连接工具

SSH远程连接工具

注意,我们在上图的命令中为 bash 指定了 -c 参数。

远程执行脚本

对于要完成一些复杂功能的场景,如果是仅仅能执行几个命令的话,简直是弱爆了。我们可能需要写长篇累牍的 shell 脚本去完成某项使命!此时 SSH 依然是不辱使命的好帮手(哈哈,前面的内容仅仅是开胃菜啊!)。

 1)执行本地的脚本

我们在本地创建一个脚本文件 test.sh,内容为:

ls pwd

然后运行下面的命令:

$ ssh  < test.sh

SSH远程连接工具

通过重定向 stdin,本地的脚本 test.sh 在远程服务器上被执行。

接下来我们我期望能为脚本 test.sh 传递一个参数,为了验证传入的参数,在 test.sh 文件的末尾添加两行:

echo $0 echo $1

然后尝试执行下面的命令:

$ ssh  < test.sh helloworld $ ssh  < "test.sh helloworld"

下图显示了执行的结果:

SSH远程连接工具

$ ssh  'bash -s' < test.sh helloworld

SSH远程连接工具

在上图的最后两行,输出的是 “bash” 和 “helloworld” 分别对应 $0 和 $1。

2)执行远程服务器上的脚本

ls pwd

执行下面的命令:

$ ssh  "/home/nick/test.sh"

SSH远程连接工具

注意,此时需要指定脚本的绝对路径!

下面我们也尝试为脚本传递参数。在远程主机上的 test.sh 文件的末尾添加两行:

echo $0 echo $1

然后尝试执行下面的命令:

$ ssh  /home/nick/test.sh helloworld

SSH远程连接工具

真棒,最后两行 “/home/nick/test.sh” 和 “helloworld” 分别对应 $0 和 $1。

                                          

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233055.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jvm垃圾回收算法有哪些_java垃圾回收算法几种

    jvm垃圾回收算法有哪些_java垃圾回收算法几种在说垃圾回收算法之前,先谈谈JVM怎样确定哪些对象是“垃圾”。1.引用计数器算法:引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当计数器为0的时候,JVM就认为对象不再被使用,是“垃圾”了。引用计数器实

    2025年6月29日
    3
  • cacti监控一个web上的多个tomcat

    cacti监控一个web上的多个tomcat

    2021年8月31日
    51
  • go语言 ssh_websshpro

    go语言 ssh_websshprogowebssh推荐使用文章目录gowebssh推荐使用1.前言2.项目地址3.简单修改4.交叉编译5.结果展示1.前言一般ssh的登录使用需要ssh客户端进行登录,比如xshell、putty等,之前我们也推荐过九款:https://blog.csdn.net/weixin_39510813/article/details/118722265。目前我们有一个需求是在web上登录设备的ssh,一番搜索后找到一个比较小巧合适的,并且做了一点简单的修改,基于go+vue的,最后可以打

    2025年6月2日
    3
  • (void (*Visit)(const ElemType &))[通俗易懂]

    (void (*Visit)(const ElemType &))[通俗易懂]templatevoidLinkList::Traverse(void(*Visit)(constElemType&))const//引用函数,函数指向指针{Node*p=head->next;//新建指向节点类指针p,指针指向头结点的nextwhile(p!=NULL){(*Visit)(p->data);p=p->next;}}…

    2022年5月15日
    32
  • 一文读懂自监督学习

    一文读懂自监督学习公众号关注“视学算法”设为“星标”,DLCV消息即可送达!来自|知乎作者丨Sherlock来源丨https://zhuanlan.zhihu.c…

    2022年9月14日
    3
  • 最短路径Dijkstra算法原理及Matlab实现「建议收藏」

    最短路径Dijkstra算法原理及Matlab实现「建议收藏」图论的基础知识不再阐述。最短路径算法主要有二Dijkstra算法Floyd算法Dijkstra算法研究的是从初始点到其他每一结点的最短路径而Floyd算法研究的是任意两结点之间的最短路径以下图为例,首先介绍Dijstra的原理红字为各结点的编号,蓝字为各结点之间的距离首先定义几个变量结点个数n;二维矩阵M(nxn),距离矩阵,连通的结点间即为距离,不…

    2022年6月1日
    64

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号