网易首页 > 网易号 > 正文 申请入驻

如何在 Bash 脚本中使用加密密码

0
分享至

如果您被迫使用 Linux 脚本连接到受密码保护的资源,您可能会对将密码放入脚本感到不安。OpenSSL 为您解决了这个问题。

密码和脚本

将密码放在 shell 脚本中并不是一个好主意。事实上,这是一个非常糟糕的主意。如果脚本落入坏人之手,阅读它的每个人都可以看到密码是什么。但如果你被迫使用脚本,你还能做什么?

当进程到达该点时,您可以手动输入密码,但如果脚本要在无人看管的情况下运行,那将不起作用。值得庆幸的是,有一种替代方法可以将密码硬编码到脚本中。与直觉相反,它使用不同的密码来实现这一点,以及一些强加密。

在我们的示例场景中,我们需要从我们的 Ubuntu 计算机远程连接到 Fedora Linux 计算机。我们将使用 Bash shell 脚本与 Fedora 计算机建立 SSH 连接。该脚本必须在无人值守的情况下运行,并且我们不想将远程账户的密码放在脚本中。在这种情况下,我们不能使用 SSH 密钥,因为我们假装我们对 Fedora 计算机没有任何控制或管理权限。

我们将使用著名的 OpenSSL 工具包 来处理加密,并使用一个实用程序来将密码输入 SSH 命令。

sshpass

安装 OpenSSL 和 sshpass

因为许多其他加密和安全工具都使用 OpenSSL,所以它可能已经安装在您的计算机上。但是,如果不是,则安装只需要一点时间。

在 Ubuntu 上,键入以下命令:

sudo apt 获取 openssl

要安装,请使用以下命令:

sshpass

sudo apt install sshpass

在 Fedora 上,您需要输入:

须藤 dnf 安装 openssl

要安装的命令是:

sshpass

须藤 dnf 安装 sshpass

在 Manjaro Linux 上,我们可以安装 OpenSSL:

sudo pacman -Sy openssl

最后,要安装,请使用以下命令:

sshpass

sudo pacman -Sy sshpass

在命令行上加密

在我们开始在脚本中使用该命令之前,让我们通过在命令行上使用它来熟悉它。假设远程计算机上的帐户密码是. 我们将使用 加密该密码。

openssl

rusty!herring.pitshaft

openssl

我们需要提供加密密码。加密密码用于加密和解密过程。命令中有很多参数和选项 。稍后我们将逐一介绍它们。

openssl

回声'生锈!鲱鱼.pitshaft' | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass pass:'pick.your.password'

我们用于通过管道将远程帐户密码发送到命令中。

echo

openssl

参数是:

openssl

  • enc -aes-256-cbc:编码类型。我们使用带有密码块链接的高级加密标准256 位密钥密码。
  • -md sha512:消息摘要(哈希)类型。我们正在使用 SHA512 加密算法。
  • -a:这告诉在加密阶段之后和解密阶段之前应用 base-64 编码。
  • openssl
  • -pbkdf2:使用基于密码的密钥派生函数 2 (PBKDF2) 使得暴力攻击成功猜测您的密码变得更加困难。PBKDF2 需要许多计算来执行加密。攻击者需要复制所有这些计算。
  • -iter 100000:设置 PBKDF2 将使用的计算次数。
  • -salt:使用随机应用的颜值使加密输出每次都不同,即使纯文本相同。
  • -pass pass:'pick.your.password':我们需要用来解密加密的远程密码的密码。用您选择的健壮密码代替。
  • pick.your.password

我们密码的加密版本 被写入终端窗口。

rusty!herring.pitshaft

为了解密这个,我们需要使用我们用来加密的相同参数传递加密字符串,但添加(decrypt) 选项。

openssl

回声 U2FsdGVkX19iiiRNhEsG+wm/uKjtZJwnYOpjzPhyrDKYZH5lVZrpIgo1S0goZU46 | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass pass:'pick.your.password'

字符串被解密,我们的原始文本——远程用户帐户的密码——被写入终端窗口。

这证明我们可以安全地加密我们的远程用户账户密码。我们还可以在需要时使用我们在加密阶段提供的密码对其进行解密。

但这真的改善了我们的处境吗?如果我们需要加密密码来解密远程帐户密码,那么解密密码肯定需要在脚本中吗?嗯,是的,确实如此。但加密的远程用户帐户密码将存储在不同的隐藏文件中。该文件的权限将阻止除您之外的任何人(显然还有系统的 root 用户)访问它。

要将加密命令的输出发送到文件,我们可以使用重定向。该文件名为“.secret_vault.txt”。我们已将加密密码更改为更强大的密码。

回声'生锈!鲱鱼.pitshaft' | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass pass:'secret#vault!password' > .secret_vault.txt

什么都没有发生,但密码被加密并发送到“.secret_vault.txt”文件。

我们可以通过解密隐藏文件中的密码来测试它是否有效。请注意,我们在这里使用,而不是.

cat

echo

cat .secret_vault.txt | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass pass:'secret#vault!password'

密码从文件中的数据成功解密。我们将使用更改此文件的权限,以便其他人无法访问它。

chmod

chmod 600 .secret_vault.txt

ls -l .secret_vault.txt

使用权限掩码 600 会删除文件所有者以外的任何人的所有访问权限。我们现在可以继续编写我们的脚本了。

在脚本中使用 OpenSSL

我们的脚本非常简单:

#!/bin/bash
# 远程账户名称
REMOTE_USER=极客
# 远程账户的密码
REMOTE_PASSWD=$(cat .secret_vault.txt | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass pass:'secret#vault!password')
# 远程计算机
REMOTE_LINUX=fedora-34.local
# 连接到远程计算机并将时间戳放入名为 script.log 的文件中
sshpass -p $REMOTE_PASSWD ssh -T $REMOTE_USER@$REMOTE_LINUX << _remote_commands
echo $USER "-" $(date) >> /home/$REMOTE_USER/script.log
_remote_commands

  • 我们设置了一个名为“geek”的变量。
  • REMOTE_USER
  • 然后,我们使用我们刚才使用的相同命令设置一个名为从“.secret_vault.txt”文件中提取的解密密码值的变量。
  • REMOTE_PASSWD
  • 远程计算机的位置存储在一个名为.
  • REMOTE_LINUX

有了这些信息,我们就可以使用命令连接到远程计算机。

ssh

  • 该命令是连接线上的第一个命令。我们将它与(密码)选项一起使用。这让我们可以指定应该发送的命令的密码。
  • sshpass
  • -p
  • ssh
  • 我们使用(禁用伪终端分配)选项,因为我们不需要在远程计算机上为我们分配伪 TTY。
  • -T
  • ssh

我们正在使用一个简短的此处文档将命令传递给远程计算机。两个字符串之间的所有内容都作为指令发送到远程计算机上的用户会话——在这种情况下,它是一行 Bash 脚本。

_remote_commands

发送到远程计算机的命令只是将用户账户名和时间戳记录到名为“script.log”的文件中。

将脚本复制并粘贴到编辑器中,并将其保存到名为“go-remote.sh”的文件中。请记住更改详细信息以反映您自己的远程计算机的地址、远程用户帐户和远程帐户密码。

用于使脚本可执行。

chmod

chmod +x go-remote.sh

剩下的就是尝试一下。让我们启动我们的脚本。

./go-remote.sh

因为我们的脚本是无人值守脚本的极简模板,所以终端没有输出。但是如果我们检查 Fedora 计算机上的“script.log”文件,我们可以看到远程连接已经成功建立,并且“script.log”文件已经更新了时间戳。

猫脚本.log

您的密码是私密的

您的远程帐户密码未记录在脚本中。

尽管解密密码在脚本中,但没有其他人可以访问您的“.secret_vault.txt”文件以对其进行解密并检索远程帐户密码。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
福耀大学审批没有通过,曹德旺发声了!有点心酸!

福耀大学审批没有通过,曹德旺发声了!有点心酸!

天气观察站
2024-06-05 13:09:16
我老公今年32岁了,昨天晚上他吃了两粒,我就催着他去泡个澡

我老公今年32岁了,昨天晚上他吃了两粒,我就催着他去泡个澡

情感挽救大师
2024-06-06 03:37:15
TA:罗德里戈可能是姆巴佩加盟最大的牺牲品,球员团队称仍想留队

TA:罗德里戈可能是姆巴佩加盟最大的牺牲品,球员团队称仍想留队

直播吧
2024-06-05 14:40:09
德布劳内兜射,2-0,世界第3完胜,球迷:没包袱,欧洲杯或有突破

德布劳内兜射,2-0,世界第3完胜,球迷:没包袱,欧洲杯或有突破

侧身凌空斩
2024-06-06 04:25:33
问界某车主在4s店门口拉白色横幅:等车100天,开车60天变老款!

问界某车主在4s店门口拉白色横幅:等车100天,开车60天变老款!

火山诗话
2024-06-03 14:20:27
俄乌第832天:俄军哈尔科夫面临失败,援乌升级,舒尔茨态度转变

俄乌第832天:俄军哈尔科夫面临失败,援乌升级,舒尔茨态度转变

山河路口
2024-06-04 16:56:23
冷知识张伯伦3200万镑加盟利物浦,仍是阿森纳队史转出纪录

冷知识张伯伦3200万镑加盟利物浦,仍是阿森纳队史转出纪录

直播吧
2024-06-05 21:05:12
深度818当年天涯上炒作最热的周公子事件,背后真相细思恐极!

深度818当年天涯上炒作最热的周公子事件,背后真相细思恐极!

一夜万古
2024-06-01 12:13:41
45岁保姆:以为和雇主出轨6年无人知晓,最后却得到了最狠的报复

45岁保姆:以为和雇主出轨6年无人知晓,最后却得到了最狠的报复

孢木情感
2024-06-03 19:38:21
2006年,湖南一母亲和儿子乱伦26年,儿子为摆脱动了杀机

2006年,湖南一母亲和儿子乱伦26年,儿子为摆脱动了杀机

五月读书汇
2024-06-03 06:50:44
婆婆嫌弃我生了女儿要求AA制,一个月后,我的报复让他们苦不堪言

婆婆嫌弃我生了女儿要求AA制,一个月后,我的报复让他们苦不堪言

纸鸢奇谭
2024-06-03 22:26:02
CCTV5直播中国女排VS保加利亚,3-0=保留奥运希望,刁琳宇引争议

CCTV5直播中国女排VS保加利亚,3-0=保留奥运希望,刁琳宇引争议

体育大学僧
2024-06-05 17:11:08
可以“摸到”女人这几个地方,说明她已经被你拿下,男人不用怀疑

可以“摸到”女人这几个地方,说明她已经被你拿下,男人不用怀疑

玄学情感
2024-06-06 03:38:55
韩国国脚:听到入选时感到不真实;遗憾不能与金玟哉一起比赛

韩国国脚:听到入选时感到不真实;遗憾不能与金玟哉一起比赛

懂球帝
2024-06-05 18:36:25
周淑怡再爆逆天言论!网友: 三观尽毁,希望彻底封杀她!

周淑怡再爆逆天言论!网友: 三观尽毁,希望彻底封杀她!

鱼真香综艺
2024-06-05 18:23:00
60岁的夫妻,一周同房几次比较好?60岁绝经大姐一周一次,如何?

60岁的夫妻,一周同房几次比较好?60岁绝经大姐一周一次,如何?

39健康网
2024-05-19 23:20:03
“与辉同行销售额超东方甄选”成热榜TOP1引发热议,举步维艰了

“与辉同行销售额超东方甄选”成热榜TOP1引发热议,举步维艰了

钱多多多多
2024-06-05 11:09:51
广东:女子和弟弟同住,房间就只有一张床,网友:这样睡不尴尬吗

广东:女子和弟弟同住,房间就只有一张床,网友:这样睡不尴尬吗

小松看众生
2024-06-05 15:31:02
特朗普:“普京会在俄乌冲突中取胜”

特朗普:“普京会在俄乌冲突中取胜”

参考消息
2024-06-05 11:08:13
贵州草海藏鱼1.2亿条,禁渔5年被啃成秃海!长江会重蹈覆辙吗?

贵州草海藏鱼1.2亿条,禁渔5年被啃成秃海!长江会重蹈覆辙吗?

棒棒糖画画
2024-06-05 23:10:43
2024-06-06 06:28:49
智说科技圈
智说科技圈
互联网的产生是BUG的存在
61文章数 100955关注度
往期回顾 全部

科技要闻

9家车企拿到自动驾驶落地入场券,没特斯拉

头条要闻

9旬老人去世后被发现与小38岁保姆结婚 房产被过户

头条要闻

9旬老人去世后被发现与小38岁保姆结婚 房产被过户

体育要闻

赴美试训的崔永熙,表现究竟怎么样?

娱乐要闻

《青春有你》胡文煊被曝孕期出轨

财经要闻

员工证实周大福关闭深圳工厂

汽车要闻

又一个水桶车 试驾新“卷王”极狐阿尔法S5

态度原创

手机
旅游
家居
艺术
公开课

手机要闻

vivo调整策略:iQOO 13新版本开案,Pro版疑似被替代!

旅游要闻

一女子从家到机场仅10分钟却没赶上飞机 愤而投诉

家居要闻

温室余闲 平仄之间雅趣浓

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版