1. python 使用paramiko模块ssh远程linux服务器,linux服务器已经使用公钥认证免密码登陆,请问怎么写。
实例1:
#!/usr/bin/python
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("172.16.1.3",22,"root","333333")
stdin, stdout, stderr = ssh.exec_command("df -h")
print stdout.readlines()
ssh.close()
实例2:
#!/usr/bin/python
import paramiko
t = paramiko.Transport(("172.16.1.2",322))
t.connect(username = "root", password = "222222")
sftp = paramiko.SFTPClient.from_transport(t)
remotepath='/opt/test.txt'
localpath='/opt/test.txt'
sftp.put(localpath,remotepath)
#sftp.get(remotepath, localpath)
t.close()
2. 如何使用python远程登录一个操作系统,并执行某条命令
你可以使用python的pexcpct包通过ssh调用远程服务器指令:
import pxssh
import getpass
try:
s = pxssh.pxssh()
hostname = raw_input('hostname: ')
username = raw_input('username: ')
password = getpass.getpass('password: ')
s.login (hostname, username, password)
s.sendline ('uptime') # run a command
s.prompt() # match the prompt
print s.before # print everything before the propt.
s.sendline ('ls -l')
s.prompt()
print s.before
s.sendline ('df')
s.prompt()
print s.before
s.logout()
except pxssh.ExceptionPxssh, e:
print "pxssh failed on login."
print str(e)
3. 使用python 实现SSH登录设备时出现问题
解决了啊,不过不是用的
stdin,stdout,stderr=client.exec_command('show arp;show clock')
用这种方法只能弄一条命令
用下面这个
chan= client.invoke_shell()
chan.send('en\n')
chan.send("password\n")
chan.send('show log\n')
result = chan.recv(100000).decode()
用了这个可能还有别的问题,试试吧,不行再讨论
4. python中怎样实现ssh远程登录服务器
这个都是自动登陆的了
也是不麻烦的一个操作。
最近写了一个软件, 用来批量管理服务器的。
比如批量操作命令, 批量上传下载文件的。
也是比较好用多的
如果需要的话, 看一下网名吧
5. python怎样ssh 连接远程机器并且执行脚本命令
result=os.popen("ssh A; grep -r hello ./* ") print("".join(result))
6. python用ssh连接时,只用ip和用户名但是不需要用到密码,该怎么编程谢
局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的。现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件,拷贝某些文件,批量关机等。如果一台一台得手工去操作,费时又费力,如果要进行多个操作就更麻烦啦。
或许你会想到网络同传, 网络同传是什么?就是在一台电脑上把电脑装好,配置好,然后利用某些软件,如“联想网络同传”把系统原样拷贝过去,在装系统时很有用,只要在一台电脑上装好,同传以后所有的电脑都装好操作系统了,很方便。同传要求所有电脑硬件完全相同,在联想的电脑上装的系统传到方正电脑上肯定会出问题的。传系统也是很费时间的,根据硬盘大小,如果30G硬盘,100多台电脑大约要传2个多小时,反正比一台一台地安装快!但是如果系统都传完了,发现忘了装一个软件,或者还需要做些小修改,再同传一次可以,但是太慢,传两次半天时间就没了。这时候我们可以利用ssh去控制每台电脑去执行某些命令。
先让我们回忆一下ssh远程登录的过程:首先执行命令 ssh [email protected] ,第一次登录的时候系统会提示我们是否要继续连接,我们要输入“yes”,然后等一段时间后系统提示我们输入密码,正确地输入密码之后我们就能登录到远程计算机,然后我们就能执行命令了。我们注意到这里面有两次人机交互,一次是输入‘yes’,另一次是输入密码。就是因为有两次交互我们不能简单的用某些命令去完成我们的任务。我们可以考虑把人机交互变成自动交互,python的pexpect模块可以帮我们实现自动交互。
7. 如何使用python实现远程登录到linux再远程登录到另一个linux
这个是服务端限制啊,你即使是用python实现,也是走ssh通道啊,也还是要ssh验证的,服务端限制,你还是没办法啊
如果你是嫌两次登陆麻烦,那就在ssh验证上做文章,实现免密码验证登陆
或者用A机器的ssh tunnel做代理
8. 请教下python3 上如何实现级联ssh
首先,我的windows系统上有python2和python3。使用下面命令切换到python3:
activate py3
1
接着使用下面命令下载相关模块:
pip install ecdsa
pip install Crypto
pip install paramiko
1
2
3
连接服务器操作:
# -*- coding: utf-8 -*-
import paramiko
# 服务器相关信息,下面输入你个人的用户名、密码、ip等信息
ip = ""
port = 22
user = ""
password = ""
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 建立连接
ssh.connect(ip,port,user,password,timeout = 10)
#输入linux命令
stdin,stdout,stderr = ssh.exec_command("pwd")
# 输出命令执行结果
result = stdout.read()
print(result)
#关闭连接
ssh.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
如下,运行该程序,可以看到控制台输出的结果: