2016-09-28 3 views
0

Я хочу временно добавить пользовательский ключ к ssh-agent, выполнить несколько команд и забыть об этом.Несколько команд в подпроцессе ssh-agent

Man страницы гласит следующее:

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; 

Есть ли способ?

+0

Хлопок может заключаться в том, чтобы указать явное время жизни с использованием параметра '-t', хотя это оставляет возможность того, что ключ либо истекает слишком рано, либо хранится дольше, чем необходимо. – chepner

ответ

1

Заверните два (или более) команд внутри одной команды Баш, как это:

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

(или, возможно, поместить их в сценарий).

 Смежные вопросы

  • Нет связанных вопросов^_^