linux 远程上传下载文件及远程启动程序
第一步安装ssh
1.查看ssh服务的状态
输入以下命令:
sudo service sshd status
如果出现
Loaded: error (Reason: No such file or directory)
提示的话,说名没有安装ssh服务,按照第二步:安装ssh服务。
如果出现
Active: inactive (dead)
说明已经安装了ssh服务,但是没有开启。按照第三步:开启ssh服务。
安装ssh命令:
如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入以下命令:
sudo yum install sshd
或者
sudo yum install openssh-server(由osc网友 火耳提供)
如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入以下命令:
sudo apt-get install sshd
或者
sudo apt-get install openssh-server(由osc网友 火耳提供)
然后按照提示,安装就好了。
在终端敲入以下命令:
sudo service sshd start
执行完命令后,用第一步:查看ssh服务状态的命令,如果出现以下提示
Active: active (running) since Sun 2013-04-07 13:43:11 CST; 15s ago
说明你的ssh服务已经启动了。如果失败来的话,那试着卸载一下(看第六步:卸载ssh服务)再安装(第二部:安装ssh服务)。
使用ssh服务跟使用ftp服务一样,推荐安装putty(一款远程登陆工具)来登陆本地主机。安装命令与第二步:安装ssh服务相同,只是把sshd换成putty即可。
安装putty完成后,使用以下命令远程登陆:
putty ip/hostname
其中ip/hostname为你的ssh主机的ip地址或者主机名
比如我的ip地址为192.168.1.103,那么我可以使用 putty 192.168.1.103来登陆我的主机。
如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入以下命令:
sudo yum remove sshd
如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入以下命令:
sudo apt-get –purge remove sshd
然后就会提示卸载完成。
第二步sftp上传下载
粗体部分为需要根据实际情况填写的变量
hostname:IP或主机名(远程的机器)
22:端口号(默认是22)
username:远程机器的用户名
password:远程机器的密码
dir_path:需要下载的远程机器上的路径
'config.xml':下载下来的重命名(可以加上绝对路径)
scp=paramiko.Transport((hostname,22))
scp.connect(username=username,password=password)
sftp=paramiko.SFTPClient.from_transport(scp)
sftp.get(dir_path, 'config.xml')
scp.close()
第三步远程启动程序
由于我这里是执行GUI程序所以命令中加了“export DISPLAY=:0;”
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 第一次登录的认证信息
# 连接服务器
ssh.connect(hostname='192.168.0.50', port=22, username='kingsun03', password='kingsun')
# 执行命令(用;隔开两条命令)
stdin, stdout, stderr = ssh.exec_command('export DISPLAY=:0;cd /home/test/test0704/test_v1_9/;./main_GUI')
#打印输出结果
res, err = stdout.read(), stderr.read()
result = resif reselse err
print(result.decode())