air*_*ata 6 ssh ssh-keys ssh-agent
我想使用 ssh-add 加载受变量密码保护的 ssh 密钥。
当我尝试从文件加载它时,效果很好。
eval $(ssh-agent)
DISPLAY=1 SSH_ASKPASS="passwordfile" ssh-add id_rsa < /dev/null
现在我想将密码和 id_rsa 分配给变量并使用如下内容:
eval $(ssh-agent)
DISPLAY=1 SSH_ASKPASS="$PASSPHRASE" ssh-add $ID_RSA < /dev/null
我怎样才能实现这个目标?
该SSH_ASKPASS变量存储一个可执行文件,因此您可以指定一个仅输出密码变量值的一行脚本:
的内容~/.ssh/askpass.sh(必须设置为可执行文件,例如chmod +x ~/.ssh/askpass.sh)
#!/bin/sh\necho "$PASSPHRASE"\nRun Code Online (Sandbox Code Playgroud)\n然后你可以运行:
\n$ SSH_ASKPASS_REQUIRE=force SSH_ASKPASS="$HOME/.ssh/askpass.sh" ssh-add "$ID_RSA"\nRun Code Online (Sandbox Code Playgroud)\n完整示例:
\n$ export PASSPHRASE="test123" ID_RSA="$HOME/.ssh/test.rsa"\n$ ssh-keygen -t rsa -b 4096 -o -a 100 -f "$ID_RSA"\nGenerating public/private rsa key pair.\nEnter passphrase (empty f\xd0\xber no passphrase): test123\nEnter same passphrase again: test123\nYour identification has been saved i\xd5\xb8 test.rsa\nYour public key has been saved i\xd5\xb8 test.rsa.pub\nThe key fingerprint is:\nSHA256:dLo1pYfzd33lb+GiI8QcES5jaLHEmNhrvRJiMWR3d58 adamhotep@tabasco\nThe key\xe2\x80\x99s randomart image is:\n+---[RSA 4096]----+\n|.oo.++ . o. |\n|.+.+o.= o.. . |\n| o o+ +..oE. |\n| o +....o+ + |\n|. o . . S B . .|\n| . . * = oo|\n| . o . o *|\n| . . o o+|\n| ..o ...|\n+----[SHA256]-----+\n$ printf \'#!/bin/sh\\necho "$PASSPHRASE"\\n\' > ~/.ssh/askpass.sh\n$ chmod +x ~/.ssh/askpass.sh\n$ eval $(ssh-agent -s)\n$ SSH_ASKPASS_REQUIRE=force SSH_ASKPASS="$HOME/.ssh/askpass.sh" ssh-add "$ID_RSA"\nIdentity added: test.rsa (adamhotep@tabasco)\nRun Code Online (Sandbox Code Playgroud)\n(另请参阅我的 ssh-keygen 建议,了解为什么这些额外参数可以提高安全性。)
\n| 归档时间: |
|
| 查看次数: |
2603 次 |
| 最近记录: |