Выполненные mpirun и ssh-добавляют удаленно на той же сессии

С -q опция, wget сама ничего не должна производить ни к одной консоли, ни файлу журнала, указанному -o опция, за исключением случая описана Michał. Файл журнала однако будет создан (если -o был предоставлен).

Это однако не гарантирует, что никакие системные демоны не заметят того, что wget был выполнен - сетевая активность может независимо контролироваться другими инструментами.

5
29.06.2011, 23:57
2 ответа

Я думаю, что проблема находится в этой строке:

ssh M 'exec ssh-agent bash;ssh-add my_rsa_key;mpirun --hostfile .hosts -np 10 sample'

Существует по крайней мере несколько проблем:

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

  2. для [ssh-добавляют], чтобы говорить [ssh-агент], несколько переменных среды должны быть определены, говоря местоположение сокета агента.

Таким образом, обычный способ запустить ssh-агент через оболочку eval команда:

eval $(ssh-agent -s)

Я поэтому изменил бы последнюю строку Вашего сценария к:

ssh M 'exec $(ssh-agent); ...(keep the rest unchaged)'

Обратите внимание, что необходимо использовать одинарные кавычки ' здесь, иначе $(...) будет расширен оболочкой, запускающей скрипт, т.е. ssh-агент будет запущен на Вашей локальной машине.

С другой стороны, Вы могли настроить все свои хосты EC2 (M и M1+M2) и Ваш локальный ssh клиент для разрешения передачи агента, и Вы просто выполняете агент локально. Затем необходимо было бы только быть уверены, что ключ, который Вы добавляете локально, является authroized на каждом удаленном хосте.

3
27.01.2020, 20:40

Как насчет упрощают эту целую проблему при помощи ssh-agent-forwarding вместо этого? Можно передать учетные данные от локального ssh-agent для использования на удаленной машине, таким образом, Вы не должны волноваться о выполнении нового агента и добавлении ключей там.

2
27.01.2020, 20:40

Теги

Похожие вопросы