gas*_*ter 2 security ssh authentication sudo
提示(在客户端,如何加密文件/密码):
# encrypt pwd with ssh key:
openssl rsa -in ~/.ssh/id_rsa -outform pem > ~/.ssh/TEMP-id_rsa.pem 2>/dev/null
openssl rsa -in ~/.ssh/id_rsa -pubout -outform pem > ~/.ssh/TEMP-id_rsa.pub.pem 2>/dev/null
echo $PWDHERE > ~/.ssh/TEMP.pwd
openssl rsautl -encrypt -pubin -inkey ~/.ssh/TEMP-id_rsa.pub.pem -in ~/.ssh/TEMP.pwd -out ~/.ssh/TEMP.pwd.enc 2>/dev/null
rm ~/.ssh/TEMP.pwd > /dev/null 2>&1
# decrypt:
PWDHERE=`openssl rsautl -decrypt -inkey ~/.ssh/TEMP-id_rsa.pem -in ~/.ssh/TEMP.pwd.enc`
Run Code Online (Sandbox Code Playgroud)
因此,在服务器端使用 root 用户通过 SSH 在服务器上自动运行命令将是一项非常简单的任务(最后,我们需要使用 root 用户从服务器端的台式机运行脚本,但运行命令自动化就足以知道,从那里我们可以做这件事..)。
但是:问题是,如果我们必须首先在服务器上“sudo su -”并在其中输入密码,如何安全地使用 root 自动运行命令?
更新:修改 sudoers 文件不是一个选项。(也许木偶可以做到这一点??)
更新#2:
echo myPassword | sudo -S ls /tmp
Run Code Online (Sandbox Code Playgroud)
AFAIK 不安全。(因为如果其他用户 'ps -ef' 他们可以看到密码一小段时间?)所以这也不是解决方案。
更新#3:我想做“使用临时命令远程控制机器”
Ban*_*uin 10
你想要做的是昆虫本身,真的不应该做。
有鉴于此,也许您想重新考虑您对“安全”的要求。sudo
到底何必呢?您可以设置一个(第二个)SSH 服务器,它接受以 root 用户身份登录,但仅使用公钥身份验证。这样,您根本不需要传输密码,只需以 root 用户身份登录并运行您的命令。你可以简单地
/etc/ssh/sshd_config
,sshd
使用-f
选项启动一个新实例,使其使用新的备用配置文件。然后您设置公钥身份验证,这样您就可以ssh root@server -p 666 "rm -rf /"
从您的台式机上运行,而无需 sudo 和密码。
甩掉包袱 :-)
归档时间: |
|
查看次数: |
8456 次 |
最近记录: |