自动将两个xterm和ssh启动到服务器中

时间:2014-12-19 16:40:31

标签: bash ssh xterm sshpass

我使用以下bash脚本,它有几个问题:

  1. 第二个xterm在第一个被杀之前不会启动
  2. 我必须杀死使用quit启动的每个xterm而不是简单的$ exit
  3. 我运行脚本的bash终端被锁定,直到两个xterms都被杀死
  4. 我想在将xterm和ssh启动到服务器

    后更改目录
    read -s -p "PW? " password
    
    xterm -bg red -fg yellow -hold -e sshpass -p $password ssh user@server1
    
    xterm -bg blue -fg yellow -hold -e sshpass -p $password ssh user@server2
    
  5. 任何帮助将不胜感激。感谢。

    提供的解决方案使我能够创建完美无缺的以下内容:

    xterm -bg red -fg yellow -e sshpass -p $password ssh -Y -t user@server1 'cd /home/user/work; $SHELL -i' &
    xterm -bg blue -fg yellow -e sshpass -p $password ssh -Y -t user@server2 'cd /home/user/work/; $SHELL -i' &
    

1 个答案:

答案 0 :(得分:2)

问题(1)和(3)通过在后台启动xterms来解决:

xterm -bg red  -fg yellow -hold -e sshpass -p $password ssh user@server1  &
xterm -bg blue -fg yellow -hold -e sshpass -p $password ssh user@server2  &

问题(4),您可以使用expect做更多有趣的事情,但这应该做(仅使用ssh测试,而不是使用xterm和sshpass测试):

xterm -bg blue -fg yellow -hold -e sshpass -p $password ssh -t user@server2 'cd /var/log; $SHELL -i'  &

假设您的SHELL理解-i表示"互动外壳"。
请注意向ssh添加-t选项。