git
在脚本中通过 SSH 连接到远程服务器而无需手动输入密码,可以使用 SSH 密钥认证机制。这样做可以自动完成认证过程,而无需手动输入密码。
以下是实现自动化认证的步骤:
-
生成 SSH 密钥对:
如果您尚未生成 SSH 密钥对,请使用ssh-keygen
命令生成。执行以下命令:ssh-keygen -t rsa
按照提示操作,生成密钥对并保存到默认路径(通常是
~/.ssh/id_rsa
)。 -
将公钥复制到远程服务器:
使用ssh-copy-id
命令将生成的公钥复制到远程服务器上。执行以下命令:ssh-copy-id root@192.168.110.53
您需要输入远程服务器的密码,然后公钥将被复制到远程服务器上的
~/.ssh/authorized_keys
文件中。 -
验证 SSH 连接:
确保您可以通过 SSH 连接到远程服务器而无需手动输入密码。执行以下命令:ssh root@192.168.110.53
如果连接成功,说明 SSH 密钥认证设置正确。
完成以上步骤后,再次运行的脚本,它将自动通过 SSH 密钥认证连接到远程服务器而无需手动输入密码。
#!/bin/bash
rm -rf /opt/gateway/webroot/teacher/
rm -rf /opt/gateway/webroot/student/
scp -r root@192.168.110.53:/opt/gateway/webroot/{student,teacher} /opt/gateway/webroot/
local_ip=$(ip route get 1 | awk '{print $7}')
cd /opt/gateway/webroot/student/
sed -i 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/'"${local_ip}"'/g' config.js
cd /opt/gateway/webroot/teacher/
sed -i 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/'"${local_ip}"'/g' config.js
评论区