paramiko是用来远程执行命令的模块,
下面是ssh和scp的的两个例子
#!/usr/bin/env python
import paramiko
hostname = ''
password = ''
command = 'ls'
username = ""
port = 22
client = paramiko.SSHClient()
# 其中load_host_keys一般配合save_host_keys来使用,
# load_system_host_keys可以指定主机密钥文件,
# 如果不指定默认就是家目录下的.ssh目录下的known_hosts文件。
client.load_system_host_keys()
client.connect(hostname=hostname, port=port,
username=username, password=password)
stdin, stdout, stderr = client.exec_command(command)
print(stdout.read())
client.close()
这里是直接把服务器上面的的文件复制下来
#!/usr/bin/env python
import paramiko
hostname = ''
password = ''
source = '/root/tmp.txt' # 服务器上的文件
dest = r'D:\\tmp\\tmp.txt' # 本机的文件
username = ""
port = 22
t = paramiko.Transport((hostname, port))
t.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get(source, dest)
t.close()
load_system_host_keys
函数的源码def load_system_host_keys(self, filename=None):
if filename is None:
# try the user's .ssh key file, and mask exceptions
filename = os.path.expanduser("~/.ssh/known_hosts")
try:
self._system_host_keys.load(filename)
except IOError:
pass
return
self._system_host_keys.load(filename)
从这里可以看出,
load_system_host_keys
默认从~/.ssh/known_hosts
里面获取服务器,
否则要自己提供一个文件,
这里需要注意一下。
全部0条评论
快来发表一下你的评论吧 !