Скрипт Bash для SCP - SSH Keys

Сейчас я работаю программистом, и в результате мне нужно постоянно загружать свое программное обеспечение в удаленные системы для тестирования. У меня есть около 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 установлена ​​фраза-пароль. Я прочитал, что после однократного ввода вашей ключевой фразы, она останется активной до конца текущего сеанса терминала. Это правда? Если нет, есть идеи?

2 ответа

Решение

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

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

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

Другие вопросы по тегам