在linux中存储凭据

时间:2017-08-09 08:45:16

标签: python linux encryption passwords

我需要访问需要用户名和密码的服务,我不希望将其存储在代码中。代码在带有kerberos的linux服务器上运行。

任何人都可以指出允许我使用linux中的python或bash shell在linux上存储密码的示例吗?

目前我在文件中使用明文密码,只有当前用户的权限。

我被指向使用powershell的指南:

#The following command create a txt file containing a encrypted version of
#the password string (in this example "P@ssword1"). This is something you do once while
#logged on as the account that will eventually decrypt the password
#######################################################################################
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:\Temp\Password.txt"


#######################################################################################
#In your script that are using the encrypted password, you can do the following:
#######################################################################################
# 1) Read the encrypted password from the txt file and convert it to a SecureString object
$pass = Get-Content "C:\Temp\Password.txt" | ConvertTo-SecureString

# 2) Convert the SecureString object to a plain text variable that can be used in the script
#The decrypted password is now available in the $UnsecurePassword variable.
$BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass)
$UnsecurePassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
cls
Write-Host $UnsecurePassword

1 个答案:

答案 0 :(得分:0)

为了存储配置值,我建议使用configparser,它允许您在配置文件中存储任何类型的配置和参数。

存储用户名和密码当然非常敏感。一种方法是使用仅为您所知的主密钥加密数据,而不是在任何地方进行硬编码。相反,每次运行或启动脚本时,您都可以提示输入该主密钥,然后解密存储在配置文件中的加密密码。解释了这种方法here