Назад | Перейти на главную страницу

Bash Script для SCP - ключи SSH

В данный момент я работаю программистом, поэтому мне постоянно приходится загружать свое программное обеспечение в удаленные системы для тестирования. У меня около 7 машин, на которые нужно получить все копии.

На данный момент у меня есть короткий сценарий bash с scp, выполняющим передачу для каждой удаленной машины:

echo -e "\nUpdating Taiwan Machine"
scp {file1,file} bschlinker@taiwan:/home/bschlinker/
echo -e "\nUpdating Wisconsin Machine"
scp -P 2400 {file1,file2} bschlinker@wisconsin:/home/bschlinker/

Меня мучительно просят ввести пароль к каждой машине. Я понимаю, что могу решить эту проблему с помощью ключей SSH, но я не хочу иметь аутентификацию без пароля на удаленных машинах с помощью ключа. В результате у меня есть пароль для моего ключа SSH. Я прочитал, что после того, как вы введете вашу парольную фразу один раз, она останется активной до конца текущего сеанса терминала. Это правда? Если нет, какие идеи?

Если у вас запущен агент SSH (например, ssh-agent), то вы можете добавить ключ к агенту, и клиент SSH свяжется с агентом для получить от него ключ.

Для этого вам понадобится SSH-AGENT. Затем, в зависимости от вашей ОС, вы можете настроить его для запуска при входе в систему и запросить кодовую фразу. Впоследствии, пока вы вошли в систему, он будет предоставлять сеансы ssh с вашими ключами.

SSH-AGENT также делает что-то более умное - если вы используете ssh на одну машину, а с этой машины ssh на третий сервер, на котором у вас также есть ваш открытый ключ, вторая машина также будет автоматически аутентифицирована через агента (это называется пересылкой агента ).