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 客戶機作為遠程服務器。
保存文件。要執行該腳本,您需要使用sudo chmod 755命令授予它執行權限。所有用戶都可以執行該腳本,但只有sudo用戶可以修改該文件。
最后,從終端使用以下命令執行Bash腳本:
./linuxmi.sh每當運行此腳本時,系統都會提示您輸入遠程服務器密碼。如果您希望在沒有人為干預的情況下運行腳本,例如在使用Cron時,這不是我們想要的。
自動化密碼登錄
在您的本地 PC 或運行腳本的 PC 上安裝 sshpass,這是一個非交互式密碼提供程序。
在基于 Debian 發行版
如果你使用的是基于 Debian 的發行版,比如 Ubuntu, Pop!_OS 或 Lubuntu:
sudo apt update && sudo apt install sshpass在 RHEL 和 Fedora 上
dnf install sshpass在安裝 sshpass 之后修改腳本,使其看起來如下所示。
#!/bin/bash #將數據復制到遠程服務器 sshpass-p"yourpassword"rsync-avl--mkpath/home/linuxmiuser_name@remote_server/home/Backup
這里以純文本的形式提供密碼。顯然,這不是理想的方式,因為它不安全,也不是很好的實踐。如果文件落入壞人之手,你的麻煩就大了。
為了提高安全性,我們將使用 GnuPG,這是一種安全的開源加密工具。
對您的密碼進行加密
在大多數Linux系統上,GnuPG是默認安裝的,但是如果您的系統上沒有安裝GnuPG,下面介紹如何安裝GnuPG。
使用命令 touch .secrets 創建一個名為 secrets 的隱藏文件。作為額外的安全措施,我們在默認情況下隱藏了文件,下面介紹如何在 Linux 上查看隱藏的文件。
在 secrets 文件中,輸入遠程 PC 的密碼并保存。
接下來,使用 gpg 命令加密該文件。
sudo gpg .secrets系統將提示您輸入一個安全且強的密碼短語以打開加密文件。
GnuPG 將創建一個新文件,擴展名 .gpg 附加在舊文件名后面。您的新文件名現在應該是 secrets.gpg,假設您使用 secrets 文件名。
如果使用cat命令查看 secrets.gpg 的內容,您將看到一些如下的文本,以表明您的密碼已加密。
要以純文本的形式查看文件的內容,您需要使用以下命令對其進行解密(系統會提示您輸入在加密過程中設置的密碼):
gpg -dq secrect.gpg在腳本中使用加密密碼
如需在腳本中使用加密后的密碼,請按如下步驟更新腳本。
#!/bin/bash #將數據復制到遠程服務器 gpg-dqsecrets.gpg|sshpassrsync-avl--mkpath/home/linuxmiuser_name@remote_server/home/Backup再次運行備份腳本,這次不會提示您輸入密碼。
使用Bash腳本自動化任務
GnuGP 經常用于保護 PC 上的敏感文件和數據,也是保護 Linux 上自動 Bash 腳本中的密碼的好工具。
使用Bash腳本可以做很多事情。Bash是一個強大的工具,可以幫助您自動化Linux上的許多東西,學習編寫Bash腳本是一項值得的投資。
-
PC
+關注
關注
9文章
2083瀏覽量
154243 -
服務器
+關注
關注
12文章
9176瀏覽量
85461 -
腳本
+關注
關注
1文章
390瀏覽量
14867
原文標題:如何在 Linux Shell 腳本中使用加密密碼
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論