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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么理解JS Promise

    怎么理解JS Promise      由于昨天发了一篇关于setTimeout的文章,里面提到了Promise,那篇文章里没有解释Promise的用法和含义,因为昨天的我还没太懂Promise,所以没有在那篇文章继续解释Promise,然后今天的我总算是对Promise有所理解了,然后我来谈谈我学到的Promise的知识,因为是个人的理解,所以会不全面,请多包涵。一、何为Promise在MDNwebdo…

    2022年6月11日
    39
  • 余弦查询表_三角函数余弦表

    余弦查询表_三角函数余弦表https://qqqun.s3.amazonaws.com/index.htmlhttp://www.zhaokaifang.com/

    2022年10月5日
    1
  • python license函数_Python 自动获取License文件

    python license函数_Python 自动获取License文件1importos2importsys3importjson4importtime567#returndependenciesstring8#forexample:9#'”axios”:”^0.19.2″,”myjs-common”:”^1.0.6″,”oneport”:”^1.0.2″’10defreadPackageJson(filename):11de…

    2022年7月26日
    14
  • 如何在一个页面使多个setInterval函数正常运行

    如何在一个页面使多个setInterval函数正常运行varfirstInterval;varsecondInterval;functionfirstAlert(){if(firstInterval)clearInterval(firstI

    2022年7月2日
    26
  • 单调队列和单调栈详解

    单调队列和单调栈详解这里是我的blog:有更多算法分享=v=https://endlesslethe.com/monotone-queue-and-stack-tutorial.html前言单调栈和单调队列算是栈和队列的高级应用吧,在公司面试中应该是不怎么会出现的(除非算法岗?)。因为原理比较简单,网络上的相关资料反而对于这两个东西说得都不甚清楚,尤其是它们的应用方法。最基本的两本中文算法书“紫书”和“白皮”都

    2022年6月25日
    24
  • latex IEEEtran bib参考文献title双引号

    latex IEEEtran bib参考文献title双引号1.我想在其他latex文档中,使用IEEEtran.bst所定义的格式去引用参考文献,我的参考文献的具体信息存放在cankao.bib文件中了;然后我就使用下面两句引用参考文献;文献也能引用,也能正常显示,就是title上没有双引号,与IEEE提供的模板出现的参考文献有些差异;\bibliographystyle{IEEEtran}\bibliography{IEEEabrv,cankao}{}2.我这个傻叉捣鼓了两天,发现我所使用的文档中有一个语句已经定义了参考文献的格式,语句的内容如下

    2022年6月25日
    44

发表回复

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

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