SSH命令格式

usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]

[-D [bind_address:]port] [-e escape_char] [-F configfile]

[-I pkcs11] [-i identity_file]

[-L [bind_address:]port:host:hostport]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]

[-R [bind_address:]port:host:hostport] [-S ctl_path]

[-W host:port] [-w local_tun[:remote_tun]]

[user@]hostname [command]

主要参数说明

-l   指定登入用户

-p 设置端口号

-f  后台运行,并推荐加上 -n 参数

-n 将标准输入重定向到 /dev/null,防止读取标准输入。如果在后台运行ssh的话(-f选项),就需要这个选项。

-N 不执行远程命令,只做端口转发

-q 安静模式,忽略一切对话和错误提示

-T 禁用伪终端配置

-t (tty)为远程系统上的ssh进程分配一个伪tty(终端)。如果没有使用这个选项,当你在远程系统上运行某条命令的时候,ssh不会为该进程分配tty(终端)。相反,ssh将会把远端进程的标准输入和标准输出附加到ssh会话上去,这通常就是你所希望的(但并非总是如此)。这个选项将强制ssh在远端系统上分配tty,这样那些需要tty的程序就能够正常运行。

-v verbose)显示与连接和传送有关的调试信息。如果命令运行不太正常的话,这个选项就会非常有用。

ssh控制远程主机,远程执行命令步骤

第一步,设置ssh免认证,免认证就是不用密码认证就可以直接登录,这在写脚本服务器控制时特别有用。

每二步,就是到远端服务器上去执行命令

准备工作

基于公私钥认证(可参考:Linux配置SSH密钥登录详解及客户端测试使用无密码登录)或者用户名密码认证(可参考:SSH使用expect自动输入密码、命令实现非交互式密码授权)能确保登录到远程服务器

cmd如果是脚本,注意绝对路径问题(相对路径在远程执行时就是坑)

基于公私钥认证远程登录可能存在的不足

这个可以满足我们大多数的需求,但是通常运维部署很多东西的时候需要root权限,但是有几处限制:

远程服务器禁止root用户登录

在远程服务器脚本里转换身份用expect需要send密码,这样不够安全

ssh 执行远程命令格式

ssh [options] [user@]host [command]

其中,host为想要连接到的OpenSSH服务器(远程系统)的名称,它是惟一的必需参数。host可以是某个本地系统的名称,也可以是因特网上某个系统的FQDN(参见术语表)或者是一个IP地址。命令ssh host登录到远程系统host,使用的用户名与正在本地系统上使用的用户名完全相同。如果希望登录的用户名与正在本地系统上使用的用户名不同,那么就应该包含user@。根据服务器设置的不同,可能还需要提供口令。

ssh远程执行命令

如果没有提供command参数,ssh就会让你登录到host上去。远程系统显示一个shell提示符,然后就能够在host上运行命令。命令exit将会关闭与host的连接,并返回到本地系统的提示符。

1. ssh远程执行简单的命令

[root@web01 data]# ls /data/

10.0.0.7 web01

[root@web02 data]# ls /data/

10.0.0.8 web02

//ssh远程执行一个命令

[root@web01 data]# ssh 10.0.0.8 ls /data

10.0.0.8

web02

//ssh远程执行两个命令,不加引号

[root@web01 data]# ssh 10.0.0.8 ls /data;ls //没有加双引号,第二个ls直接在本地的目前所在目录执行

10.0.0.8

web02

10.0.0.7 web01

//ssh远程执行两个命令,加引号(无变量,单双引号都行)

[root@web01 data]# ssh 10.0.0.8 'ls /data;ls'

10.0.0.8

web02

anaconda-ks.cfg

install.log

install.log.syslog

nginx.sh

1. 如果想在远程机器上连续执行多条命令,可以用单引号或者双引号将这些命令括起来。

2. 如果不加单引号或者双引号,第二个ls命令在本地执行。

例如 ssh user@node cd /local ls 则 ls 只会执行 cd /local 命令,ls命令在本地执行,加了双引号或者单引号,则被括起来的命令被当做ssh命令的一个参数,所以会在远程连续执行。

3. 分号,两个命令之间用分号隔开

2. 通过shell脚本的方式远程执行命令

示例一说明:

[root@web01 data]# cat /server/scripts/ssh.sh

#!/bin/bash

ssh root@10.0.0.8 > /dev/null 2>&1 << eeooff

cd /home

touch abcdefg.txt

exit

eeooff

echo done!

[root@web01 data]# sh /server/scripts/ssh.sh

done!

[root@web01 data]# ssh 10.0.0.8 "ls /home"

abcdefg.txt

oldboy

web

远程执行的内容在“<< eeooff ” 至“ eeooff ”之间,在远程机器上的操作就位于其中,注意的点:

1. << eeooff,ssh后直到遇到eeooff这样的内容结束,eeooff可以随便修改成其他形式。

2. 重定向目的在于不显示远程的输出了

3. 在结束前,加exit退出远程节点

链接:http://www.cnblogs.com/ilfmonday/p/ShellRemote.html

示例二说明:

#!/bin/bash

ssh root@192.168.0.23 < < remotessh

killall -9 java

cd /data/apache-tomcat-7.0.53/webapps/

exit

remotessh

远程执行的内容在"< < remotessh " 至" remotessh "之间

在远程机器上的操作就位于其中,注意的点:<< remotessh,ssh后直到遇到remotessh这样的内容结束,remotessh可以随便修改成其他形式。

在结束前,加exit退出远程节点 如果不想日志文件在本机出现可以修改配置

ssh root@192.168.0.23 > /dev/null 2>&1 < < remotessh

https://blog.csdn.net/sn3009/article/details/52779642

3. 查看远程服务器的CPU信息

https://www.cnblogs.com/softidea/p/6855045.html

example:

find ./ ! -path "./output/*" ! -path "./output1/*" -type f | xargs grep ""

https://blog.51cto.com/xoyabc/2108052

解决SSH远程执行命令找不到环境变量的问题

通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同, ...

&lbrack;转帖&rsqb;ssh 远程执行命令

ssh 远程执行命令 https://www.cnblogs.com/youngerger/p/9104144.html SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是 ...

利用scp 远程上传下载文件&sol;文件夹和ssh远程执行命令

利用scp传输文件 1.从服务器下载文件scp username@servername:/path/filename /tmp/local_destination例如scp codinglog@192 ...

ssh远程执行命令使用明文密码

经过不懈的搜索终于找到ssh远程执行命令使用明文密码使用sshpass. 例子: sshpass -p "sequoiadb" ssh root@localhost "l ...

模拟ssh远程执行命令&comma;粘包问题&comma;基于socketserver实现并发的socket

06.27自我总结 1.模拟ssh远程执行命令 利用套接字编来进行远程执行命令 服务端 from socket import * import subprocess server = socket(A ...

网络编程之模拟ssh远程执行命令、粘包问题 、解决粘包问题

目录 模拟ssh远程执行命令 服务端 客户端 粘包问题 什么是粘包 TCP发送数据的四种情况 粘包的两种情况 解决粘包问题 struct模块 解决粘包问题 服务端 客户端 模拟ssh远程执行命令 服务 ...

ssh 远程执行命令 nohup 无效问题

昨夜1:00多准备睡觉了,突然一哥们咨询了我一个问题. 他A机器上远程执行B机器(ssh user@ip "command")上的脚本,B上的服务并没有起来. 看了下截图,脚本确实 ...

使用ssh远程执行命令批量导出数据库到本地

前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,1 ...

随机推荐

Excel 同时打开2个或多个独立窗口

首先win7版本点击[开始]菜单,在输入框里面输入"regedit.exe"打开注册表     然后定位找到该路径HKEY_CLASSES_ROOT \ Excel.Sheet.1 ...

让reddit&sol;r&sol;programming炸锅的一个帖子,还是挺有意思的

这是原帖 http://www.reddit.com/r/programming/comments/358tnp/five_programming_problems_every_software_en ...

javascript事件机制

① javascript绑定事件的方式 http://blog.iderzheng.com/dom-javascript-event-binding-comparison/ ② javascript事 ...

【c&lowbar;prime&lowbar;plus】第十七章笔记

抽象数据类型(ADT) 为类型的属性和可对类型执行的操作提供一个抽象的描述,这个米阿叔不受任何实现的约束,甚至不受任何特定编程语言的约束,这样一种正式的抽象描述被称为抽象数据类型. 开一个实现该ADT ...

FPGA基础知识了解

FPGA学习的一些误区 FPGA入门必看资源 FPGA百度百科 FPGA基础知识及其工作原理 高端设计工具为少有甚是没有硬件设计技术的工程师和科学家提供现场可编程门阵列(FPGA).无论你使用图形化设 ...

一起写框架-Ioc内核容器的实现-基础功能-ComponentScan(四)

功能说明 该步骤实现的功能包括: 1. 启动程序时,将@ComponentScan加载的类,创建对象并放在容器里面. 2. 通过ApplicatoinContext的getBean()方法获得容器里面 ...

&lbrack;array&rsqb; leetcode - 53&period; Maximum Subarray - Easy

leetcode - 53. Maximum Subarray - Easy descrition Find the contiguous subarray within an array (cont ...

Linux系统的RAID磁盘阵列

RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件( ...

HBase describe table 参数说明

创建user表 > create 'dimensoft:user', 'info' 查看表结构 > describe 'dimensoft:user' DESCRIPTION 'dimen ...

树的最长链-POJ 1985 树的直径(最长链)&plus;牛客小白月赛6-桃花

求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简 ...

linux 带环境变量 远程执行,SSH远程执行命令环境变量问题相关推荐

  1. 在Linux下安装配置蒲公英 私网环境轻松实现异地SSH远程管理

    由于不少中小型公司的宽带网络是没有固定IP的私网环境,同时还由于预算有限,因此通过传统方式很难建立虚拟专用网络(Virtual Private Network),对于运维人员而言异地SSH远程管理.维 ...

  2. Linux服务笔记之二:SSH远程登录

    上次,写了用传统的telnet方法来远程管理服务器.今天,写下如何用SSH(Secure SHELL)协议来远程管理服务器.优点:因为SSH基于成熟的公钥加密体系,所以传输的数据会进行加密,保证数据在 ...

  3. 一周肝出Linux之远程服务详解(ssh远程登录、scp远程复制、sftp安全下载、TCP Wrappers访问控制)

    目录 一:理论 1:ssh概要 2:ssh协议与端口号 二:实验 实验环境 ssh用户登录控制 1:不允许对方远程root账户登录 2:禁止跳板登录 测试最大密码重试次数 设置黑白名单 远程配对密钥验 ...

  4. 【Linux操作系统】——网络配置与SSH远程

    Linux操作系统--网络配置与SSH远程 安装完VMware与系统后,需要进行网络配置.第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置. 1.下载远程软件 首 ...

  5. 云计算Linux运维——基础服务应用——SSH远程连接(1)

    点关注不迷路 目录 点关注不迷路 SSH远程连接 一.SSH介绍 1.管理Linux服务器的方式 2.确保Linux服务正常运行 3.客户端软件 二.ssh远程连接操作 1.ssh远程连接 2.执行远 ...

  6. arch Linux 安装完,无法通过 SSH 远程连接 root 用户问题

    访问 arch Linux 主机的该文件 [root@eric-laptop ~]# vim /etc/ssh/sshd_config 对应注释部分后边补上下边三行: LoginGraceTime 1 ...

  7. python调用ping命令_我可以创建一个脚本来测试是否可以在python服务器上远程使用SSH和PING命令吗? - python...

    我可以创建脚本来测试是否可以在python中远程使用服务器上的SSH和PING命令吗? 参考方案 好的,这是Python3和Linux的示例.只需记住,您的目标主机/服务器必须正在运行SSH服务器才能 ...

  8. ftp linux 推送文件_Linux下SSH用FTP命令上传文件至另一个FTP空间

    如果没有ftp 提示: -bash: ftp: command not found 请先安装ftp应用程序: yum install ftp #ftp 127.0.0.1 21 输入远程空间的FTP ...

  9. Linux基础——怎么样从 Windows 通过 SSH 远程 Linux

    文章目录 1.前言 2.Windows SSH 软件 PuTTY 1.前言 为了实现 SSH 功能, 你得确定你的 Linux 上有安装了 SSH 服务, 通常可能是没有安装的. 所以我们将要安装一个 ...

最新文章

  1. 【转载】浅谈缺陷截图处理
  2. centos amd双显卡_讯景RX590 AMD 50周年纪念版显卡评测
  3. c++ 把数字和中文字符分开_C语言中的字符常量与变量
  4. redis VS kafka
  5. Mysql8 NDB集群二进制方式免安装配置图解
  6. 12月29日云栖精选夜读 | SQL Server数据库漏洞评估了解一下
  7. android的AIDL的调用
  8. html.actionlink 锚点,razor - 从@ Html.ActionLink MVC 4将参数传递给控制器
  9. Dataset增加行数据及常用方法
  10. Android仿虾米音乐播放器之专辑图片模糊处理
  11. CAS单点登录原理解析
  12. java script是什么_Java Script的工作原理是什么?怎样用它来生成简单的
  13. ROS机器人021-机器人命令行发送cmd_vel话题及/cmd_vel geometry_msgs/Twist示例
  14. 家用计算机手抄报,大学计算机作业手抄报
  15. 视频教程-10分钟搞定 php+H5手机网页微信支付 在线视频教程(含源代码)-微信开发
  16. ML之VC维:VC维(Vapnik-Chervonenkis Dimension)理论的概述(衡量模型复杂度和预测能力的指标)的简介、案例理解之详细攻略
  17. 【PAT乙级】1009 说反话
  18. 一个优秀IT专家的成长历程---献给所有的颓废或..
  19. 数据挖掘实战:个人信贷违约预测
  20. 中国证券IT发展简史(中)

热门文章

  1. 均衡器equalizer
  2. 我让小屋更漂亮计算机教案,小班美术活动漂亮的房屋教案反思
  3. [转载红鱼儿]delphi 实现微信开发(1)
  4. 【Unity】如何让粒子系统显示在UI上呢?
  5. warning: user mockbuild does not exist - using root
  6. 数据分析:餐厅订单数据分析
  7. 小米手机MIUI11带有3个实用小功能,与家庭相关,保护家人安全
  8. Java的特点和优势
  9. 支付宝APP扫一扫领现金
  10. 基于ASP.NET/C#开发国外支付平台(Paypal)学习心得。