当前位置:网站首页>SSH 远程执行命令简介
SSH 远程执行命令简介
2022-07-03 18:33:00 【星哥玩云】
在之前,看到大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,Ubuntu10.04 Server 亲测!!
ssh执行远程操作
命令格式
ssh -p $port [email protected]$p 'cmd'
$port : ssh连接端口号 $user: ssh连接用户名 $ip:ssh连接的ip地址 cmd:远程服务器需要执行的操作
准备工作
基于公私钥认证或者用户名密码认证能确保登录到远程local2服务器(有点基本运维知识的人做这个事情都不是问题)
cmd如果是脚本,注意绝对路径问题(相对路径在远程执行时就是坑)
不足
- 这个命令可以满足我们大多数的需求,但是通常运维部署很多东西的时候需要root权限,但是有几处限制:
- 远程服务器local2禁止root用户登录
- 在远程服务器脚本里转换身份用expect需要send密码,这样不够安全
执行远程服务器需要sudo权限的脚本
ssh的-t参数
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
中文翻译一下:就是可以提供一个远程服务器的虚拟tty终端,加上这个参数我们就可以在远程服务器的虚拟终端上输入自己的提权密码了,非常安全
命令格式
ssh -t -p $port [email protected]$ip 'cmd'
示例脚本
#!/bin/bash
#变量定义 ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3") user="test1" remote_cmd="/home/test/1.sh"
#本地通过ssh执行远程服务器的脚本 for ip in ${ip_array[*]} do if [ $ip = "192.168.1.1" ]; then port="7777" else port="22" fi ssh -t -p $port [email protected]$ip "remote_cmd" done
这个方法还是很方便的,-t虚拟出一个远程服务器的终端,在多台服务器同时部署时确实节约了不少时间啊!
边栏推荐
- Line by line explanation of yolox source code of anchor free series network (5) -- mosaic data enhancement and mathematical understanding
- win32:堆破坏的dump文件分析
- Count the number of pixel values in the image
- PHP MySQL Update
- [enumeration] annoying frogs always step on my rice fields: (who is the most hateful? (POJ hundred practice 2812)
- 2022-2028 global aircraft head up display (HUD) industry research and trend analysis report
- How to track the real-time trend of Bank of London
- How to quickly view the inheritance methods of existing models in torchvision?
- 模块九作业
- Data analysis is popular on the Internet, and the full version of "Introduction to data science" is free to download
猜你喜欢
How to track the real-time trend of Bank of London
How to draw non overlapping bubble chart in MATLAB
PHP MySQL create database
2022-2028 global scar care product industry research and trend analysis report
The number of incremental paths in the grid graph [dfs reverse path + memory dfs]
Computer graduation design PHP makeup sales Beauty shopping mall
AcWing 271. Teacher Yang's photographic arrangement [multidimensional DP]
Nodejs (01) - introductory tutorial
Golang string (string) and byte array ([]byte) are converted to each other
Win32: dump file analysis of heap corruption
随机推荐
What is the function of registering DLLs- What does registering a DLL do?
Closure and closure function
Torch learning notes (4) -- torch's dynamic calculation diagram
Torch learning notes (5) -- autograd
Summary and Reflection on the third week of winter vacation
Ping problem between virtual machine and development board
PHP determines which constellation it belongs to today
PHP MySQL create database
Should I be laid off at the age of 40? IBM is suspected of age discrimination, calling its old employees "dinosaurs" and planning to dismiss, but the employees can't refute it
Install apache+php+mysql+phpmyadmin xampp and its error resolution
The second largest gay dating website in the world was exposed, and the status of programmers in 2022
[combinatorics] generating function (commutative property | derivative property | integral property)
Sepconv (separable revolution) code recurrence
[combinatorics] generating function (positive integer splitting | basic model of positive integer splitting | disordered splitting with restrictions)
Redis core technology and practice - learning notes (11): why not just string
SDNUOJ1015
Sensor debugging process
The vscode code is automatically modified to a compliance code when it is formatted and saved
Torch learning notes (3) -- univariate linear regression model (self training)
Have you learned the correct expression posture of programmers on Valentine's day?