如何以编程方式生成密码GNU 屏幕会议?
通常,要为现有的 GNU 屏幕定义密码,我们必须:
- 开始屏幕
- 做Ctrl+A :password
- 重新连接后,屏幕将要求输入密码
并将密码应用到新的屏幕会话:
- 做Ctrl+A ]
- 复制加密的密码
- 将加密的密码放入
~/.screenrc
(或某个自定义文件)中,前面加上password
语句 - 下次启动(
screen -c "/path/to/custom_screenrc
对于自定义文件)时,屏幕将要求输入密码
生成加密密码需要很多手动步骤。
我想运行一个命令来生成要输入的加密密码.screenrc
。
答案1
GNU screen 使用 GNU crypt C 库(维基百科,手动的) 使用 DES 加密,并使用由 2 个随机大写字母组成的随机盐。
因此,让我们使用mkpasswd
依赖whois
于相同库的包:
sudo apt-get install whois
然后生成加密密码:
(echo -n "password "; mkpasswd -m des -S SO "test") >> ~/.screenrc
下次您启动新屏幕时,它会要求输入密码。
将密码仅应用于某些(新)屏幕的替代方法:
tmpconfig="$(mktemp /tmp/.screenrc-XXXXXX)"
(echo -n "password "; mkpasswd -m des -S SO "test") > "$tmpconfig"
screen -c "$tmpconfig"
rm "$tmpconfig"
一旦屏幕启动,您就可以安全地删除临时配置文件。一旦启动,加密密码就会存储在内存中。
笔记:
test
是密码。SO
是盐。您可以保留此盐,或者用任意 2 个大写字母字符替换它,即^[A-Z]{2,2}$
在正则表达式语言中。仅供参考(和暴力破解者),加密密码的前两个字符确实是盐。- 为了增加临时屏幕配置文件的安全性,可以使用以下方法将其存储在 RAM 中,而不是硬盘中:
/run/shm
代替/tmp
。