如何用paramiko登陆服务器并执行命令

描述

命令

paramiko是用来远程执行命令的模块,

下面是ssh和scp的的两个例子

1- ssh

#!/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()

2- scp

这里是直接把服务器上面的的文件复制下来

#!/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()

3- 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里面获取服务器,

否则要自己提供一个文件,

这里需要注意一下。

4- 参考的链接

  • paramiko的ssh和scp
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分