在raspberry pi上通过python脚本启动SSH会话

时间:2016-11-10 18:01:49

标签: python ssh raspberry-pi2

我希望在python中创建一个脚本,启动与服务器的SSH会话。我知道它必须是一个简单的过程,我不知道从哪里开始。我的最终计划是自动执行此脚本以在启动时运行。我甚至不确定python是最好的方式我只知道它预先加载在raspbain上为pi。

1 个答案:

答案 0 :(得分:2)

一个简单的bash脚本更适合这项任务。使用python是可能的,但没有明显的理由让它变得比必要的更难。

write a shell script to ssh to a remote machine and execute commands

#!/bin/bash
USERNAME=someUser
HOSTS="host1 host2 host3"
SCRIPT="pwd; ls"
for HOSTNAME in ${HOSTS} ; do
    ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done

来自how do i run a script at start up (askubuntu)

  

以下任何内容都需要root权限。要获得根,请打开   终端并运行命令

sudo su
     

,命令提示符将变为'#'表示终端   会话具有root权限。

     

备选方案#1。添加initscript。

     

/etc/init.d/myscript中创建一个新脚本。

vi /etc/init.d/myscript
     

(显然它不必被称为#34; myscript"。)在这个脚本中,   做任何你想做的事。也许只是运行你提到的脚本。

#!/bin/sh 
/path/to/my/script.sh
     

让它可执行。

chmod ugo+x /etc/init.d/myscript
     

配置init系统以在启动时运行此脚本。

update-rc.d myscript defaults
     

备选方案#2。将命令添加到/etc/rc.local

vi /etc/rc.local
     

内容如下。

# This script is executed at the end of each multiuser runlevel 
/path/to/my/script.sh || exit 1   # Added by me 
exit 0
     

备选方案#3。添加Upstart作业。

     

创建/etc/init/myjob.conf

     

vi /etc/init/myjob.conf

     

内容如下

description     "my job" 
start on startup
task
exec /path/to/my/script.sh

根据您对ssh连接的处理方式,如果需要在设备的整个正常运行时间内保持打开状态,则需要使用更多技巧(ssh连接在一段时间不活动后自动关闭)。 / p>