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

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

1. 生成SSH密钥对

脚本ssh远程执行多条命令脚本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文件中。

脚本ssh远程执行多条命令脚本ssh远程执行多条命令

3. 测试无密码SSH登录

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

ssh 用户名@远程服务器IP

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

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

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

脚本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登录。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。