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