在同一会话上远程运行mpirun和ssh-add

0xFF

我正在开发一个使用MPI在多台计算机上运行的程序。

我在Amazon EC2上有一台机器,可以从其中一台(主机)启动mpirun

如果我SSH到主计算机,然后触发ssh-agent,然后一切正常,那么一切都会按预期进行ssh-add my_rsa_key

我想要做的是能够在本地计算机上有一个脚本,用该脚本在mpirun远程触发主服务器上的脚本ssh,问题是我得到了,Permission denied (Public key)因为ssh-add没有通过该会话接收请求(我想)。

这是我现在正在尝试的部署脚本的非常基本的草案。

#!/bin/bash

MACHINES_LIST="M1
M2"     

echo $MACHINES_LIST | tr " " "\n" | while read fn; do
    echo "$fn"

    echo "deploying and compiling to : $fn ..."
    scp -i key "sample.c" user@$fn:/home/user
    ssh $fn 'mpicc sample.c -o sample' &

done

echo "uploading lists of hosts to master M"
scp -i key .hosts user@M:/home/user

echo "starting mpirun on master M"

##### Here mpirun needs to execute after ssh-add
ssh M 'exec ssh-agent bash;ssh-add my_rsa_key;mpirun --hostfile .hosts -np 10 sample'

有没有办法mpirunssh-add正在运行的会话中执行(远程)执行?

里卡多·穆里(Riccardo Murri)

我认为问题出在这一行:

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

至少有两个问题:

  1. exec ssh-agent部件将用[ssh-agent]替换当前的shell(由ssh启动的远程shell),因此永远不会运行以下命令。

  2. 为了使[ssh-add]与[ssh-agent]进行对话,必须定义一些环境变量,以告知代理套接字的位置。

因此,启动ssh-agent的通常方法是通过shelleval命令:

eval $(ssh-agent -s)

因此,我将脚本的最后一行更改为:

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

请注意,您必须在'这里使用单引号,否则$(...)运行脚本的外壳将扩展,即在本地计算机上启动ssh-agent。

或者,您可以配置所有EC2主机(M和M1 + M2)和本地ssh客户端以允许代理转发,而您只需在本地运行代理即可。然后,您只需要确保在每个远程主机上对在本地添加的密钥进行身份验证即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用eval $(ssh-agent)&& ssh-add在同一会话中存储密码

来自分类Dev

多个远程桌面连接到同一会话

来自分类Dev

tmux同一会话的多个实例

来自分类Dev

同一会话的不同内容?

来自分类Dev

Linux上的R会话-提交多个指向同一会话的批处理作业

来自分类Dev

是否在同一会话中运行多个浏览器实例

来自分类Dev

qpid生产者和消费者在同一会话/主题上?

来自分类Dev

使用JSch在远程SSH会话上运行telnet命令

来自分类Dev

在&符号后和远程ssh会话中运行命令

来自分类Dev

在同一会话中休眠多个对象更新

来自分类Dev

如何确保同一会话用于多个HTTP调用?

来自分类Dev

对多个应用程序使用同一会话

来自分类Dev

PowerShell在同一会话中执行.bat文件

来自分类Dev

什么时候在同一会话中运行两个连续的SELECT查询会产生不同的结果?

来自分类Dev

使用同一会话在浏览器中运行Cucumber-JVM硒测试的利弊是什么?

来自分类Dev

静默ssh-add

来自分类Dev

在同一会话中使用软件包dplyr和data.table会导致mutate()中的复制错误

来自分类Dev

临时表的创建在同一会话中引发错误,甚至也删除和重新创建

来自分类Dev

如何通过SH脚本运行ssh-agent和ssh-add?

来自分类Dev

add 和 + 的区别?

来自分类Dev

在远程使用ssh-add工作在本地添加了密钥

来自分类Dev

从Drools会话中删除对象,并在春季重用同一会话

来自分类Dev

如何在Redux中的同一connect函数内分派add和view函数?

来自分类Dev

可以使用ADD和LDUR完成同一件事吗?

来自分类Dev

自动使用ssh-add

来自分类Dev

从ruby运行`git add -p`

来自分类Dev

在Azure上运行一会儿(true)

来自分类Dev

Byobu:在同一会话的不同窗口中打开不同的选项卡

来自分类Dev

Webflux websocketclient,如何发送在同一会话[设计客户端库]的多个请求

Related 相关文章

  1. 1

    无法使用eval $(ssh-agent)&& ssh-add在同一会话中存储密码

  2. 2

    多个远程桌面连接到同一会话

  3. 3

    tmux同一会话的多个实例

  4. 4

    同一会话的不同内容?

  5. 5

    Linux上的R会话-提交多个指向同一会话的批处理作业

  6. 6

    是否在同一会话中运行多个浏览器实例

  7. 7

    qpid生产者和消费者在同一会话/主题上?

  8. 8

    使用JSch在远程SSH会话上运行telnet命令

  9. 9

    在&符号后和远程ssh会话中运行命令

  10. 10

    在同一会话中休眠多个对象更新

  11. 11

    如何确保同一会话用于多个HTTP调用?

  12. 12

    对多个应用程序使用同一会话

  13. 13

    PowerShell在同一会话中执行.bat文件

  14. 14

    什么时候在同一会话中运行两个连续的SELECT查询会产生不同的结果?

  15. 15

    使用同一会话在浏览器中运行Cucumber-JVM硒测试的利弊是什么?

  16. 16

    静默ssh-add

  17. 17

    在同一会话中使用软件包dplyr和data.table会导致mutate()中的复制错误

  18. 18

    临时表的创建在同一会话中引发错误,甚至也删除和重新创建

  19. 19

    如何通过SH脚本运行ssh-agent和ssh-add?

  20. 20

    add 和 + 的区别?

  21. 21

    在远程使用ssh-add工作在本地添加了密钥

  22. 22

    从Drools会话中删除对象,并在春季重用同一会话

  23. 23

    如何在Redux中的同一connect函数内分派add和view函数?

  24. 24

    可以使用ADD和LDUR完成同一件事吗?

  25. 25

    自动使用ssh-add

  26. 26

    从ruby运行`git add -p`

  27. 27

    在Azure上运行一会儿(true)

  28. 28

    Byobu:在同一会话的不同窗口中打开不同的选项卡

  29. 29

    Webflux websocketclient,如何发送在同一会话[设计客户端库]的多个请求

热门标签

归档