SSH 非交互式密码验证调用远程主机执行shell脚本

内容

#!/bin/sh
    
echo "hello"
PASS_WORD=pw123456
USERNAME=root
IP=192.168.0.1

echo "----SSH----"
sshpass -p $PASS_WORD ssh -o StrictHostKeyChecking=no $USERNAME@$IP -tt "sh /home/sh1.sh"

参数解释

sshpass

sshpass 是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证)

安装:

  • yum install sshpass

本地调用远程主机执行命令:

  • sshpass -p xxx ssh root@192.168.0.1 "echo hello"

从密码文件读取文件内容作为密码操作:

  • sshpass -f xxx.txt  ssh root@192.168.0.1

-tt

强制伪终端分配,否则因为标准输入不是终端可能出现报错:

Pseudo-terminal will not be allocated because stdin is not a terminal.

-o StrictHostKeyChecking=no

连接新主机时,不进行公钥确认。如果不加这个参数,初次连接远程主机时会显示该主机的公钥摘要,并需要输入“yes”来是信任该主机,shell操作十分不方便:

The authenticity of host '192.168.0.110 (192.168.0.110)' can't be established.
RSA key fingerprint is a3:ca:ad:95:a1:45:d2:57:3a:e9:e7:75:a8:4c:1f:9f.
Are you sure you want to continue connecting (yes/no)?
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用SSH连接到远程主机执行shell脚本。命令格式如下: ``` ssh user@remote_host "command" ``` 其中,user是远程主机的用户名,remote_host是远程主机的地址,command是要在远程主机执行的命令。 例如,执行远程主机上的脚本test.sh,命令如下: ``` ssh user@remote_host "bash /path/to/test.sh" ``` 如果你要执行脚本文件在本地,还可以使用 ssh 连接远程服务器并将文件传输到远程服务器,然后再执行脚本。 ``` scp test.sh user@remote_host:/path/to/ ssh user@remote_host "bash /path/to/test.sh" ``` 需要注意的是,远程主机上的命令执行完成后,SSH会立即断开连接。如果需要保持连接,可以使用-t参数,例如: ``` ssh -t user@remote_host "bash /path/to/test.sh" ``` ### 回答2: SSH是一种用于远程登录和执行命令的网络协议。远程执行Shell脚本通过SSH连接到远程服务器并在服务器上执行Shell脚本。 要远程执行Shell脚本,首先需要安装和配置SSH服务器和客户端。然后,在本地计算机上使用SSH客户端连接到远程服务器。 连接到远程服务器后,可以使用SSH命令执行Shell脚本。要执行Shell脚本,可以使用以下命令: ssh username@remote_server 'bash -s' < script.sh 在上述命令中,`username`是远程服务器的用户名,`remote_server`是远程服务器的地址,`script.sh`是要执行Shell脚本的文件名。 通过这个命令,SSH会将Shell脚本作为标准输入传递给远程服务器,并在远程服务器上使用Bash解释器执行脚本执行脚本后,结果将返回到本地计算机。 执行远程Shell脚本需要使用正确的用户名和密码来连接到远程服务器,确保远程服务器已经配置了正确的权限和路径。 总而言之,通过SSH远程连接到服务器,并使用SSH命令执行Shell脚本,可以在远程服务器上执行Shell脚本并获取结果。这是一种安全且方便的方法,适用于远程管理和自动化任务。 ### 回答3: SSH(Secure Socket Shell)是一种安全协议,用于远程登录和执行操作。要远程执行shell脚本,首先需要拥有远程主机的登录凭证和相应的权限。 使用SSH远程执行shell脚本可以通过以下步骤完成: 1. 在本地终端上打开SSH客户端工具(如OpenSSH),并输入登录远程主机的命令,形如:`ssh username@remote_host`。其中,`username`是远程主机的用户名,`remote_host`是远程主机的IP地址或域名。 2. 输入远程主机的登录密码,如果远程主机开启了公钥认证,也可以通过私钥进行身份验证。 3. 登录成功后,可以在终端上执行shell命令或运行shell脚本。要执行shell脚本,可以输入命令:`./script.sh`,其中`script.sh`是待执行脚本文件名。 4. 执行shell脚本时可能需要输入一些参数或者确认操作,根据脚本的需要进行相应的输入。 5. 执行完成后,观察终端上的输出,可以查看脚本执行的结果。如果需要保存脚本执行结果,可以将输出重定向到一个文件中,命令形如:`./script.sh > output.txt`。 请注意,执行shell脚本需要确保远程主机上已经安装了所需的脚本执行环境和依赖,否则可能会出现脚本执行失败或无法正常运行的情况。 总之,通过SSH远程执行shell脚本可以方便地在远程主机执行自定义的操作,从而实现远程管理和自动化部署等任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值