使用sshpass实现ssh非交互式在远程服务执行命令
sshpass是一个用于非交互式地提供 SSH 密码的命令行工具。它允许用户在执行需要 SSH 密码验证的操作时,通过命令行参数或环境变量直接传递密码,从而实现自动化操作,比如自动登录远程服务器自动化部署、SCP 文件传输等。
·
sshpass 是一个用于非交互式地提供 SSH 密码的命令行工具。它允许用户在执行需要 SSH 密码验证的操作时,通过命令行参数或环境变量直接传递密码,从而实现自动化操作,比如自动登录远程服务器自动化部署、SCP 文件传输等。
安装
1、直接使用Linux 服务自身的包管理工具安装,例如 yum、apt-get 等,不同产品的 Linux 包管理工具不同。
如下以 yum 安装为例:
sudo yum install -y sshpass
2、使用 sshpass 源码编译安装
先下载到站点下载源码包:https://sourceforge.net/projects/sshpass/files/sshpass/
然后编译安装,如下:
tar -xvzf sshpass-1.10.tar.gz
cd sshpass-1.10
./configure
make && make install
安装完成,使用 sshpass --help 可以查看帮助,参数较少,含义一目了然。
示例
如下命令,演示在 A 服务器上直接在 B 服务器上执行两条命令。
sshpass -p mima123 ssh -o 'StrictHostKeyChecking=no' root@192.168.10.100 'touch /opt/hello.txt ; echo Hello >> /opt/hello.txt'
- 命令在目标服务器上执行了
touch /opt/hello.txt和echo Hello >> /opt/hello.txt这两个命令。 - 总的命令用引号包括,多个命令之间用分号分隔。
- 其中参数
StrictHostKeyChecking=no实际上是告诉 SSH 客户端不要进行严格的主机密钥检查。具体来说就是如果是第一次连接到某个主机,SSH 不会提示你确认主机密钥,而是直接接受并存储它。如果主机密钥在之后发生了变化,SSH 也不会发出警告或阻止连接。这种配置通常用于自动化脚本中,以避免交互式提示。
(END)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)