电子说
Shell 脚本可以为您节省时间和精力,但是如果您不保护您的密码,它们就会成为您的负担。以下是如何保持安全的方法。
Bash 脚本是系统管理员工作的重要组成部分。它们允许您自动化普通和关键的任务。
使用脚本的一个好处是,它们可以在不需要人工干预的情况下独立运行,但有时自动化需要用户密码的任务可能很有挑战性。让我们看看如何在不影响安全性的情况下安全地自动化需要密码的脚本。
创建一个简单的脚本
假设您想要创建一个简单的脚本,将 Linux 主文件夹备份到远程位置,以便在数据丢失的情况下可以轻松地恢复数据。
首先在您的主文件夹中创建一个Bash脚本文件,使用touch命令或其他方法,并将其命名为 linuxmi.sh。请随意使用您喜欢的任何名称和目录。
该脚本使用 rsync 命令(一种功能强大的文件复制工具)将本地主目录中的所有文件备份到远程服务器。
复制以下脚本的内容并将其粘贴到您的 Bash 文件中。记住用本地 home 用户的正确名称替换用户 linuxmi。还要为远程服务器提供正确的用户名和IP地址。
#!/bin/bash #将数据复制到远程服务器 rsync -avl --mkpath /home/linuxmi user_name@remote_server/home/Backup如果您没有远程服务器来进行测试,您可以简单地安装 VirtualBox 并在本地机器上设置一个 VM。使用 VM 客户机作为远程服务器。
./linuxmi.sh每当运行此脚本时,系统都会提示您输入远程服务器密码。如果您希望在没有人为干预的情况下运行脚本,例如在使用Cron时,这不是我们想要的。
sudo apt update && sudo apt install sshpass在 RHEL 和 Fedora 上
dnf install sshpass在安装 sshpass 之后修改脚本,使其看起来如下所示。
#!/bin/bash #将数据复制到远程服务器 sshpass -p "yourpassword" rsync -avl --mkpath /home/linuxmi user_name@remote_server/home/Backup
这里以纯文本的形式提供密码。显然,这不是理想的方式,因为它不安全,也不是很好的实践。如果文件落入坏人之手,你的麻烦就大了。
sudo gpg .secrets系统将提示您输入一个安全且强的密码短语以打开加密文件。
gpg -dq secrect.gpg在脚本中使用加密密码
#!/bin/bash #将数据复制到远程服务器 gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/linuxmi user_name@remote_server/home/Backup再次运行备份脚本,这次不会提示您输入密码。
全部0条评论
快来发表一下你的评论吧 !