ubuntu

Ubuntu SSH脚本自动化执行

小樊
42
2025-09-14 13:10:33
栏目: 智能运维

要实现Ubuntu SSH脚本的自动化执行,你可以使用以下方法:

  1. 使用SSH密钥认证:

首先,你需要在本地计算机上生成SSH密钥对(如果尚未生成)。在终端中运行以下命令:

ssh-keygen -t rsa -b 4096

按照提示操作,将密钥保存在默认位置(通常是~/.ssh/id_rsa)。

接下来,将公钥(~/.ssh/id_rsa.pub)复制到远程Ubuntu服务器的~/.ssh/authorized_keys文件中。你可以手动复制,也可以使用以下命令:

ssh-copy-id user@remote_host

user替换为远程服务器的用户名,将remote_host替换为远程服务器的IP地址或域名。

现在,你可以编写一个SSH脚本,用于在远程服务器上执行命令。例如,创建一个名为ssh_script.sh的文件,其中包含以下内容:

#!/bin/bash

# 远程服务器的IP地址或域名
remote_host="your_remote_host"

# 要在远程服务器上执行的命令
remote_command="echo 'Hello, World!'"

# 使用SSH密钥认证连接到远程服务器并执行命令
ssh -i ~/.ssh/id_rsa user@$remote_host "$remote_command"

your_remote_host替换为远程服务器的IP地址或域名,将user替换为远程服务器的用户名。

最后,为脚本添加可执行权限并运行它:

chmod +x ssh_script.sh
./ssh_script.sh
  1. 使用Ansible自动化工具:

Ansible是一个自动化IT配置管理和应用部署的工具,可以用于自动化SSH任务。首先,你需要安装Ansible:

sudo apt update
sudo apt install ansible

接下来,创建一个名为inventory.ini的文件,其中包含你的远程服务器的信息:

[remote_servers]
your_remote_host ansible_user=user ansible_ssh_private_key_file=~/.ssh/id_rsa

your_remote_host替换为远程服务器的IP地址或域名,将user替换为远程服务器的用户名。

现在,你可以编写一个Ansible playbook来执行SSH任务。创建一个名为ssh_playbook.yml的文件,其中包含以下内容:

---
- name: Execute SSH commands
  hosts: remote_servers
  gather_facts: no
  tasks:
    - name: Run a command on the remote server
      ansible.builtin.command: echo 'Hello, World!'

最后,运行Ansible playbook:

ansible-playbook -i inventory.ini ssh_playbook.yml

这将使用SSH连接到远程服务器并执行指定的命令。你可以根据需要修改playbook,以执行更复杂的任务。

0
看了该问题的人还看了