第一步安裝ssh
1.查看ssh服務(wù)的狀態(tài)
輸入以下命令:
sudo service sshd status
如果出現(xiàn)
Loaded: error (Reason: No such file or directory)
提示的話,說名沒有安裝ssh服務(wù)娶吞,按照第二步:安裝ssh服務(wù)缓淹。
如果出現(xiàn)
Active: inactive (dead)
說明已經(jīng)安裝了ssh服務(wù)宣谈,但是沒有開啟享扔。按照第三步:開啟ssh服務(wù)胃榕。
安裝ssh命令:
如果你用的是redhat宴霸,fedora唠帝,centos等系列l(wèi)inux發(fā)行版酗钞,那么敲入以下命令:
sudo yum install sshd
或者
sudo yum install openssh-server(由osc網(wǎng)友 火耳提供)
如果你使用的是debian腹忽,ubuntu来累,linux mint等系列的linux發(fā)行版,那么敲入以下命令:
sudo apt-get install sshd
或者
sudo apt-get install openssh-server(由osc網(wǎng)友 火耳提供)
然后按照提示窘奏,安裝就好了嘹锁。
在終端敲入以下命令:
sudo service sshd start
執(zhí)行完命令后,用第一步:查看ssh服務(wù)狀態(tài)的命令着裹,如果出現(xiàn)以下提示
Active: active (running) since Sun 2013-04-07 13:43:11 CST; 15s ago
說明你的ssh服務(wù)已經(jīng)啟動(dòng)了领猾。如果失敗來的話,那試著卸載一下(看第六步:卸載ssh服務(wù))再安裝(第二部:安裝ssh服務(wù))骇扇。
使用ssh服務(wù)跟使用ftp服務(wù)一樣摔竿,推薦安裝putty(一款遠(yuǎn)程登陸工具)來登陸本地主機(jī)。安裝命令與第二步:安裝ssh服務(wù)相同少孝,只是把sshd換成putty即可继低。
安裝putty完成后,使用以下命令遠(yuǎn)程登陸:
putty ip/hostname
其中ip/hostname為你的ssh主機(jī)的ip地址或者主機(jī)名
比如我的ip地址為192.168.1.103,那么我可以使用 putty 192.168.1.103來登陸我的主機(jī)稍走。
如果你用的是redhat袁翁,fedora,centos等系列l(wèi)inux發(fā)行版婿脸,那么敲入以下命令:
sudo yum remove sshd
如果你使用的是debian粱胜,ubuntu,linux mint等系列的linux發(fā)行版狐树,那么敲入以下命令:
sudo apt-get –purge remove sshd
然后就會(huì)提示卸載完成焙压。
第二步sftp上傳下載
粗體部分為需要根據(jù)實(shí)際情況填寫的變量
hostname:IP或主機(jī)名(遠(yuǎn)程的機(jī)器)
22:端口號(hào)(默認(rèn)是22)
username:遠(yuǎn)程機(jī)器的用戶名
password:遠(yuǎn)程機(jī)器的密碼
dir_path:需要下載的遠(yuǎn)程機(jī)器上的路徑
'config.xml':下載下來的重命名(可以加上絕對(duì)路徑)
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()
第三步遠(yuǎn)程啟動(dòng)程序
由于我這里是執(zhí)行GUI程序所以命令中加了“export DISPLAY=:0;”
# 創(chuàng)建SSH對(duì)象
ssh = paramiko.SSHClient()
# 允許連接不在know_hosts文件中的主機(jī)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 第一次登錄的認(rèn)證信息
# 連接服務(wù)器
ssh.connect(hostname='192.168.0.50', port=22, username='kingsun03', password='kingsun')
# 執(zhí)行命令(用;隔開兩條命令)
stdin, stdout, stderr = ssh.exec_command('export DISPLAY=:0;cd /home/test/test0704/test_v1_9/;./main_GUI')
#打印輸出結(jié)果
res, err = stdout.read(), stderr.read()
result = resif reselse err
print(result.decode())