如何仅为特定程序启用无密码ssh

时间:2013-01-14 07:45:59

标签: c++ linux ssh

我有一个要求,我希望我的C ++程序的用户能够对特定的机器执行无密码“ssh”,但同一个用户不能通过普通的终端/ shell在同一台机器上执行ssh 。

3 个答案:

答案 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中为该用户撰写特定条件,我认为您可以使用此用户执行您想要的操作。