Linux ssh的的用法
Linux ssh的的用法
ssh执行远程命令
1. 执行命令
1.执行单条命令
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 hostname
ubuntu@172.16.10.102's password:
node2
2.执行带参数的命令
ssh ubuntu@172.16.10.102 grep root /etc/passwd
ubuntu@172.16.10.102's password:
root:x:0:0:root:/root:/bin/bash
3.执行多条命令
执行多条命令时,只要用分号把命令分割开就可以了,但是要把多条命令用引号引起来,否则分号后面的命令就是在本地执行的。
# 不加分号
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 cat /etc/hostname;hostname -I
node2
172.16.10.101
# 加分号
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "cat /etc/hostname;hostname -I"
node2
172.16.10.102
4.执行多行命令
用单引号或双引号开头,然后写上几行命令,最后再用相同的引号来结束。
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "
> hostname -I
> uname -r
> uptime
> "
ubuntu@172.16.10.102's password:
172.16.10.102
4.4.0-31-generic
15:39:13 up 6:28, 2 users, load average: 0.00, 0.00, 0.00
5.执行交互命令
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "sudo apt install nginx"
ubuntu@172.16.10.102's password:
sudo: no tty present and no askpass program specified
默认情况下,当你执行不带命令的 ssh 连接时,会为你分配一个 TTY。因为此时你应该是想要运行一个 shell 会话。
但是当你通过 ssh 在远程主机上执行命令时,并不会为这个远程会话分配 TTY。此时 ssh 会立即退出远程主机,所以需要交互的命令也随之结束。
这时需要用 -t 参数显式的告诉 ssh,我们需要一个 TTY 远程 shell 进行交互,添加 -t 参数后,ssh 会保持登录状态,直到你退出需要交互的命令。
ubuntu@node1:~$ ssh -t ubuntu@172.16.10.102 "sudo apt install nginx"
ubuntu@172.16.10.102's password:
[sudo] password for ubuntu:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0
libjpeg-turbo8 libjpeg8 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common
nginx-core
Suggested packages:
libgd-tools fcgiwrap nginx-doc
The following NEW packages will be installed:
fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0
libjpeg-turbo8 libjpeg8 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx
nginx-common nginx-core
0 upgraded, 14 newly installed, 0 to remove and 8 not upgraded.
Need to get 2,681 kB of archives.
After this operation, 9,073 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
Connection to 172.16.10.102 closed.
6.使用本地变量
ubuntu@node1:~$ name="nginx"
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "echo "Install $name""
ubuntu@172.16.10.102's password:
Install nginx
2. ssh执行脚本
1.执行远程不带参数的脚本
#远程脚本文件内容
ubuntu@node2:~$ cat hello.sh
#!/bin/bash
echo "hello world"
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "$HOME/hello.sh"
ubuntu@172.16.10.102's password:
hello world
2.执行远程需要参数的脚本
# 远程脚本文件内容
ubuntu@node2:~$ cat script.sh
#!/bin/bash
name=$1
echo "install $name"
echo "installed succeed!"
ubuntu@node1:~$ name=nginx
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "$HOME/script.sh $name"
ubuntu@172.16.10.102's password:
install nginx
installed succeed!
3.执行本地不带参数的脚本
ubuntu@node1:~$ cat hello.sh
#!/bin/bash
hostname
touch hello.txt
ls
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 < hello.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
ubuntu@172.16.10.102's password:
node2
hello.txt
4.执行本地需要参数的脚本文件
# 脚本内容,需要传入一个参数
ubuntu@node1:~$ cat script.sh
#!/bin/bash
name=$1
echo "install $name"
echo "installed succeed!"
# 需要加上bash -s
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "bash -s" < script.sh nginx
ubuntu@172.16.10.102's password:
install nginx
installed succeed!
Linux ssh的的用法的更多相关文章
- linux ssh使用深度解析(key登录详解)
linux ssh使用深度解析(key登录详解) SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet Engineering Task ...
- (转)Linux SSH批量分发管理
Linux SSH批量分发管理 原文:http://blog.51cto.com/chenfage/1831166 第1章 SSH服务基础介绍 1.1 SSH服务 1.1.1SSH介绍 SSH是Sec ...
- Linux中find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- 如何通过linux ssh远程linux不用输入密码登入
如何通过一台linux ssh远程其他linux服务器时,不要输入密码,可以自动登入.提高远程效率,不用记忆各台服务器的密码. 工具/原料 ssh,ssh-keygen,scp 方法/步骤 首 ...
- windows 和 linux ssh互连
从windows连接到linux: linux开启sshd服务即可,主要是windows的配置如下: 1.使用软件,putty可以直接使用 2.使用cmd控制台连接linux,安装SSH Secure ...
- Linux SSH安全策略限制IP登录方法(转)
本文介绍了Linux SSH安全策略限制IP登录的两种方法.具体如下: 方法一: 首先需要限制登录的ip(或者如果需要自己本地登录,查看最后登录ip即可) Vim /etc/hosts.allow 输 ...
- Linux关于watch的用法
Linux关于watch的用法 2011-07-20 0个评论 收藏 我要投稿 watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一 ...
- [转]Linux中find常见用法示例
Linux中find常见用法示例[转]·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参 ...
- Linux SSh scp使用【远程文件/目录的传输】
一:Linux ssh scp的简介及作用: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们 ...
随机推荐
- 奇虎360的开源OpenResty Windows版本
https://github.com/LomoX-Offical/nginx-openresty-windows
- set unused
使用 set unused 选项标记不再使用的列 使用 drop unsused columns 丢弃标记为unused的列 alter table tabName set unused column ...
- Invalid operator< assertion error解析
这两天忙着在准备3月份打PAT考试,许久没有接触刷题了,各种生疏各种忘记,刷题速度那是一个慢,真是为自己智商着急.今天刷题碰到了一个有意思的编程习惯性错误,好几道题都涉及到自定义排序,需要自己重写&l ...
- 三栏布局的三个典型方法(圣杯、双飞翼、flex)
聊聊三栏布局----左右定宽,中间自适应. 效果图: 圣杯布局 <!DOCTYPE html> <html> <head lang="en"> ...
- 极限编程(XP)12个最佳实践
https://blog.csdn.net/qq_25564951/article/details/68062588 现场客户 ( On-site Customer ) 代码规范 ( Code Sta ...
- Test 6.29 T2 染色
问题描述 于是 CJK 轻轻松松就切了第一题."好,那么来看看第二题吧." JesseLiu 大手一挥,CJK 眼前立刻出现了一棵有 n 个节点的树."现在,你将要为这颗 ...
- LeetCode--052--N皇后II(java)
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回 n 皇后不同的解决方案的数量. 示例: 输入 ...
- LeetCode--045--跳跃游戏II(java)
给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4] 输 ...
- @ContrllerAdvice全局异常
@ControllerAdvice,是Spring3.2提供的新注解,它是一个Controller增强器,可对controller中被 @RequestMapping注解的方法加一些逻辑处理.最常用的 ...
- Tomcat修改源码,重新编译
源码和编译的区别:源码不能直接运行,是人读的,而编译后的程序是计算机可以读的.所以它们是不同的语言.