脚本ssh远程执行多条命令

在脚本中,可以使用ssh远程执行多条命令,方法是将命令用分号隔开,如下所示:,,“bash,ssh username@hostname "command1; command2; command3",

要使用脚本为多个远程服务器设置无密码SSH登录,可以按照以下步骤操作:

1. 生成SSH密钥对

在本地计算机上生成SSH密钥对,包括公钥和私钥,可以使用sshkeygen命令生成密钥对:

sshkeygen t rsa

按提示操作,可以选择默认的文件路径和添加密码保护,生成后,公钥文件为~/.ssh/id_rsa.pub,私钥文件为~/.ssh/id_rsa

2. 将公钥添加到远程服务器的authorized_keys文件中

对于每个远程服务器,需要将本地计算机的公钥添加到远程服务器的~/.ssh/authorized_keys文件中,可以使用sshcopyid命令实现:

sshcopyid i ~/.ssh/id_rsa.pub 用户名@远程服务器IP

用户名远程服务器IP替换为实际的用户名和远程服务器IP地址,执行该命令后,会要求输入远程服务器的密码,输入正确的密码后,公钥将被添加到远程服务器的authorized_keys文件中。

3. 测试无密码SSH登录

完成上述步骤后,可以尝试使用SSH命令无密码登录远程服务器:

ssh 用户名@远程服务器IP

如果一切正常,将无需输入密码即可登录远程服务器。

4. 编写脚本批量设置无密码SSH登录

如果需要为多个远程服务器设置无密码SSH登录,可以编写一个脚本来批量执行上述操作,以下是一个简单的示例脚本:

#!/bin/bash
定义服务器列表,每行包含用户名和服务器IP,用空格分隔
SERVER_LIST="
user1 192.168.1.100
user2 192.168.1.101
user3 192.168.1.102
"
遍历服务器列表,为每个服务器设置无密码SSH登录
while read r user server; do
  echo "设置无密码SSH登录: $user@$server"
  sshcopyid i ~/.ssh/id_rsa.pub $user@$server
done <<< "$SERVER_LIST"

将上述脚本保存为setup_ssh.sh,并赋予执行权限:

chmod +x setup_ssh.sh

然后运行脚本:

./setup_ssh.sh

脚本将自动为列表中的每个服务器设置无密码SSH登录。

分享文章:脚本ssh远程执行多条命令
网站路径:http://www.shufengxianlan.com/qtweb/news12/310862.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联