我有一个要求,我希望我的C ++程序的用户能够对特定的机器执行无密码“ssh”,但同一个用户不能通过普通的终端/ shell在同一台机器上执行ssh 。
答案 0 :(得分:1)
使用在不同UID下执行的代理程序(允许ssh到您的远程主机),并将您真实程序中的任何请求转发给代理。
答案 1 :(得分:0)
在您的程序中对SSH密码进行硬编码(可能会稍微模糊一点,但这并没有多大帮助)。
或者,使用带密码的SSH key,并在程序中对密钥的密码(与Unix密码不同)进行硬编码(这样可以提供更多控制)。
您是否确定在每次会话开始时(例如在早上)输入SSH密钥密码短语的用户不能忍受?每个进一步的ssh请求都不需要密码。
答案 2 :(得分:0)
Match User stack
ForceCommand exectute_me.sh
假设您的用户名为stack
。在这种情况下,将上面的行放在sshd_config
中。
因此,如果此用户(stack
)尝试通过ssh
登录服务器,则会执行名为execute_me.sh
的脚本。
如果您能够在execute_me.sh
中为该用户撰写特定条件,我认为您可以使用此用户执行您想要的操作。