Shell 腳本可以為您節(jié)省時間和精力,但是如果您不保護(hù)您的密碼,它們就會成為您的負(fù)擔(dān)。以下是如何保持安全的方法。
Bash 腳本是系統(tǒng)管理員工作的重要組成部分。它們允許您自動化普通和關(guān)鍵的任務(wù)。
使用腳本的一個好處是,它們可以在不需要人工干預(yù)的情況下獨立運行,但有時自動化需要用戶密碼的任務(wù)可能很有挑戰(zhàn)性。讓我們看看如何在不影響安全性的情況下安全地自動化需要密碼的腳本。
創(chuàng)建一個簡單的腳本
假設(shè)您想要創(chuàng)建一個簡單的腳本,將 Linux 主文件夾備份到遠(yuǎn)程位置,以便在數(shù)據(jù)丟失的情況下可以輕松地恢復(fù)數(shù)據(jù)。
首先在您的主文件夾中創(chuàng)建一個Bash腳本文件,使用touch命令或其他方法,并將其命名為 linuxmi.sh。請隨意使用您喜歡的任何名稱和目錄。
該腳本使用 rsync 命令(一種功能強大的文件復(fù)制工具)將本地主目錄中的所有文件備份到遠(yuǎn)程服務(wù)器。
復(fù)制以下腳本的內(nèi)容并將其粘貼到您的 Bash 文件中。記住用本地 home 用戶的正確名稱替換用戶 linuxmi。還要為遠(yuǎn)程服務(wù)器提供正確的用戶名和IP地址。
#!/bin/bash #將數(shù)據(jù)復(fù)制到遠(yuǎn)程服務(wù)器 rsync -avl --mkpath /home/linuxmi user_name@remote_server/home/Backup如果您沒有遠(yuǎn)程服務(wù)器來進(jìn)行測試,您可以簡單地安裝 VirtualBox 并在本地機器上設(shè)置一個 VM。使用 VM 客戶機作為遠(yuǎn)程服務(wù)器。
保存文件。要執(zhí)行該腳本,您需要使用sudo chmod 755命令授予它執(zhí)行權(quán)限。所有用戶都可以執(zhí)行該腳本,但只有sudo用戶可以修改該文件。
最后,從終端使用以下命令執(zhí)行Bash腳本:
./linuxmi.sh每當(dāng)運行此腳本時,系統(tǒng)都會提示您輸入遠(yuǎn)程服務(wù)器密碼。如果您希望在沒有人為干預(yù)的情況下運行腳本,例如在使用Cron時,這不是我們想要的。
自動化密碼登錄
在您的本地 PC 或運行腳本的 PC 上安裝 sshpass,這是一個非交互式密碼提供程序。
在基于 Debian 發(fā)行版
如果你使用的是基于 Debian 的發(fā)行版,比如 Ubuntu, Pop!_OS 或 Lubuntu:
sudo apt update && sudo apt install sshpass在 RHEL 和 Fedora 上
dnf install sshpass在安裝 sshpass 之后修改腳本,使其看起來如下所示。
#!/bin/bash #將數(shù)據(jù)復(fù)制到遠(yuǎn)程服務(wù)器 sshpass-p"yourpassword"rsync-avl--mkpath/home/linuxmiuser_name@remote_server/home/Backup
這里以純文本的形式提供密碼。顯然,這不是理想的方式,因為它不安全,也不是很好的實踐。如果文件落入壞人之手,你的麻煩就大了。
為了提高安全性,我們將使用 GnuPG,這是一種安全的開源加密工具。
對您的密碼進(jìn)行加密
在大多數(shù)Linux系統(tǒng)上,GnuPG是默認(rèn)安裝的,但是如果您的系統(tǒng)上沒有安裝GnuPG,下面介紹如何安裝GnuPG。
使用命令 touch .secrets 創(chuàng)建一個名為 secrets 的隱藏文件。作為額外的安全措施,我們在默認(rèn)情況下隱藏了文件,下面介紹如何在 Linux 上查看隱藏的文件。
在 secrets 文件中,輸入遠(yuǎn)程 PC 的密碼并保存。
接下來,使用 gpg 命令加密該文件。
sudo gpg .secrets系統(tǒng)將提示您輸入一個安全且強的密碼短語以打開加密文件。
GnuPG 將創(chuàng)建一個新文件,擴展名 .gpg 附加在舊文件名后面。您的新文件名現(xiàn)在應(yīng)該是 secrets.gpg,假設(shè)您使用 secrets 文件名。
如果使用cat命令查看 secrets.gpg 的內(nèi)容,您將看到一些如下的文本,以表明您的密碼已加密。
要以純文本的形式查看文件的內(nèi)容,您需要使用以下命令對其進(jìn)行解密(系統(tǒng)會提示您輸入在加密過程中設(shè)置的密碼):
gpg -dq secrect.gpg在腳本中使用加密密碼
如需在腳本中使用加密后的密碼,請按如下步驟更新腳本。
#!/bin/bash #將數(shù)據(jù)復(fù)制到遠(yuǎn)程服務(wù)器 gpg-dqsecrets.gpg|sshpassrsync-avl--mkpath/home/linuxmiuser_name@remote_server/home/Backup再次運行備份腳本,這次不會提示您輸入密碼。
使用Bash腳本自動化任務(wù)
GnuGP 經(jīng)常用于保護(hù) PC 上的敏感文件和數(shù)據(jù),也是保護(hù) Linux 上自動 Bash 腳本中的密碼的好工具。
使用Bash腳本可以做很多事情。Bash是一個強大的工具,可以幫助您自動化Linux上的許多東西,學(xué)習(xí)編寫B(tài)ash腳本是一項值得的投資。
-
PC
+關(guān)注
關(guān)注
9文章
2108瀏覽量
154762 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9338瀏覽量
86164 -
腳本
+關(guān)注
關(guān)注
1文章
392瀏覽量
14963
原文標(biāo)題:如何在 Linux Shell 腳本中使用加密密碼
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論