你是真的了解ssh吗 说说你不知道的ssh
Ssh命令——基石天赋
主要参数说明:
-l 指定登入用户
-p 设置端口号
-f 后台运行,并推荐加上 -n 参数
-n 将标准输入重定向到 /dev/null,防止读取标准输入
-N 不执行远程命令,只做端口转发
-q 安静模式,忽略一切对话和错误提示
-T 禁用伪终端配置
主服务器登录从服务器(主:192.168.1.1 从:192.168.1.2)
格式: Ssh root@192.168.1.2
输入从服务器的root密码:
这部执行后,就在从服务器里面了
但是:
Ssh root@192.168.1.2 “mkdir /media/cdrom”
这种类似命令就不会到从服务器去,而是在从服务器执行了命令就返回回来了,有时候这种结果并不是我们的本意
那么有意思的就来了:
1:从服务器下有个脚本/root/shell.sh
#!/bin/bash
Echo wwwwwwwwwwwwwwwwwwweb
那么执行ssh 192.168.1.2 “source /root/shell.sh”
当然,没有多大问题,在从服务器上打印后返回到本机
2:从服务器下有个脚本/root/shell.sh
#!/bin/bash
While:
do
Echo wwwwwwwwwwwwwwwwwwweb
done
那么执行ssh 192.168.1.2 “source /root/shell.sh &”(这个&是执行远程后台运行sh)
问题就是主服务器上ssh输入密码后会一直卡主
原因是因为shell.sh一直在运行,并没有任何返回,因此调用方一直处于等待状态。
这时候需要先将从服务器上的shell.sh进程kill掉,ssh恢复
娜莫解决问题的方法呢?下面给出两个方法解决
方法一:为了解决等待过程,将标准输出与标准错误输出重定向到/dev/null,这样就不会卡主了。
但这个ssh进程会一直运行在后台,浪费资源,当然,这个后台进程需要的话也是准备kill掉的
方法二:
kill掉这个ssh进程,但是在ssh执行后就kill掉ssh进程
#!/bin/bash ssh -f -n 192.168.1.2 “source /root/shell.sh &” # 后台运行ssh
pid=$(ps aux | grep "ssh –f -n 192.168.1.2 /root/shell.sh" | awk '{print $2}' | sort -n | head -n 1) # 获取进程号
echo "ssh command is running, pid:${pid}"
sleep 10 && kill ${pid} && echo "ssh command is complete"
# 10秒后执行kill命令,关闭ssh进程
你是真的了解ssh吗 说说你不知道的ssh的更多相关文章
- ssh本机失败(ssh: connect to host localhost port 22: Connection refused)
ssh本机失败(ssh: connect to host localhost port 22: Connection refused) 一. 问题描述 之前一直在服务上使用宝塔面板, 今天突发奇想, ...
- 如何生成SSH key及查看SSH key
只适用于Mac和windows下的Git Bash操作界面. 一.检查本地是否有SSH Key存在 在终端输入 ls -al ~/.ssh 如果终端输出的是: No such file or dire ...
- Linux服务器开启ssh服务,实现ssh远程登陆!
最近在学linux,使用ssh远程登陆linux,记录下来! 首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/s ...
- ubuntu下查询SSH状态和安装SSH服务
1.查询SSH的安装状态 rpm -qa |grep ssh 上面的命令可能出现提示说rpm未安装,可以使用下面这命令进行安装 sudo apt-get install rpm 某些帖子上也可以使用y ...
- [转]SSH 原理和基本使用:ssh 安全配置 以及ssh key 认证登录
一.什么是 SSH ? SSH全称(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输.早期,互联网通信都是基于明文通信,一旦被截获,内容就暴露无遗. ...
- ssh的配置,ssh打开密钥登陆,关闭密码登陆。
刚装玩fedora,那么我们就以fedora为例来说一下怎么配置: 1.先确认是否已安装ssh服务: [root@localhost ~]# rpm -qa | grep openssh-server ...
- 解决ssh连接超时时间(ssh timeout)的设置方法
本文介绍下,linux中ssh连接超时时间的设置方法,以避免总是被强行退出.有需要的朋友,参考下吧.有关修改ssh连接超时时间的方法,网上介绍的很多了.比如下面这个:可以减少ssh连接超时等待的时间: ...
- ssh 配置文件讲解大全 ssh调试模式 sftp scp strace进行调试 特权分离
ssh 配置文件讲解大全 ssh调试模式 sftp scp strace进行调试 特权分离 http://blog.chinaunix.net/uid-16728139-id-3265394.h ...
- 树莓派 ubuntu16.04 安装SSH 配置SSH 开机自启SSH
入手个树莓派3B 装了 ubuntu 16.04 需要用到SSH 记录下 0.先获得树莓派IP 树莓派 使用网线连接路由器和树莓派 在路由器设置页面(一般是192.168.1.1具体看路由器的型号和设 ...
随机推荐
- a, b交换与比较问题
1. 求a, b中较大的数,不使用if.?.switch等判断语句. 答案: 另一种思路是求两者的差,然后通过位运算判断差值的正负,不过个人觉得还是第一种各位简洁优雅. 2. 交换a, b的值,要求不 ...
- New Concept English three (41)
31w/m The typing speed need to improved 43errors The quiet life of the country ahs never appealed ...
- 【git】git知识梳理(二):服务器
(四) 远程仓库通常只是一个裸仓库(bare repository):.git子目录 四种协议:本地传输, SSH, GIT, HTTP, 除了http,均需要在服务器端安装运行git. SSH:SS ...
- 使用 nvm 管理多版本 node
首先,使用下面的命令来安装 nvm $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | b ...
- ROS中使用ABB Yumi IRB14000的一些资料汇总
目前,ABB RobotStudio 已经更新到6.05.01了,可至官网下载. 使用ABB RobotStudio和ROS进行联合调试,请参考下文: http://blog.csdn.net/Zha ...
- JAVA并发全景图1.1版本
感谢微信群"Spring Boot那些事"兄弟们的热心整理和总结
- JavaScript中的二分法插入算法
算法主体部分 var OnlineUser = { //list : 待查找的数组 //key : 待插入的值 //order : 数组的顺序 1:从小到大 0:从大到小 //start : 开始查找 ...
- phpcms V9二级目录下分页路径不正确问题的彻底解决方法
在用phpcms V9做二次开发的时候,我们有时候会把一个栏目生成到根目录下,而且这个栏目又有子栏目,我们生成静态的时候分页会出现问题,就是分页的路径的地址错误.有一种解决方法就是,把这个栏目生成动态 ...
- html display和visibility在资源加载上的区别
想要把一个html里的UI组件设置为可见/不可见,可以用两个属性,display=none/block, visibility=hidden/visible, 网上的解释是display虽然可以让一个 ...
- Maven依赖调解
引用来自maven实战中的一段话.