为 GNU 屏幕会话生成加密密码

为 GNU 屏幕会话生成加密密码

如何以编程方式生成密码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

相关内容