【问题标题】:Several commands in the ssh-agent subprocessssh-agent 子进程中的几个命令
【发布时间】:2017-02-06 05:23:14
【问题描述】:

我想暂时给ssh-agent添加一个自定义键,执行几个命令就忘了它。

手册页声明如下:

ssh 代理 [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]]
如果给出了命令行,则将其作为代理的子进程执行。当命令死亡时,代理也会死亡。

测试表明它确实适用于一个命令:

# ssh-agent ssh-add user_rsa_key
Identity added: user_rsa_key (user_rsa_key)

但不是多个命令:

# ssh-agent { ssh-add user_rsa_key; ssh-add -l; }
-bash: syntax error near unexpected token `}'
# ssh-agent $(ssh-add user_rsa_key; ssh-add -l)
Could not open a connection to your authentication agent.
Could not open a connection to your authentication agent.
SSH_AUTH_SOCK=/tmp/ssh-UQYDpH5Mopk3/agent.25436; export SSH_AUTH_SOCK;
SSH_AGENT_PID=25437; export SSH_AGENT_PID;
echo Agent pid 25437;

有办法吗?

【问题讨论】:

  • 一个技巧可能是使用-t 选项指定一个明确的生命周期,尽管这可能会导致密钥过期过早或被保留的时间超过必要的时间。

标签: bash ssh-agent


【解决方案1】:

将两个(或更多)命令包装在一个 bash 命令中,如下所示:

 ssh-agent bash -c "ssh-add user_rsa_key; ssh-add -l"

(或者可能将它们放在脚本中)。

【讨论】:

    猜你喜欢
    • 2018-12-09
    • 1970-01-01
    • 2012-10-05
    • 2018-03-09
    • 2014-10-08
    • 2013-11-22
    • 1970-01-01
    • 2017-08-06
    • 2013-02-03
    相关资源
    最近更新 更多