paramiko是python三方的基于ssh协议的远程登录模块,要使用的话首先我们需要安装

最常用的安装方法是在命令行中输入pip install paramiko,如果失败的话可以尝试其它的方法。

https://blog.csdn.net/weixin_44251004/article/details/88562257   这篇博客中也有记载其它的方法

import paramiko

# 创建ssh链接实例
ssh = paramiko.SSHClient()
# 创建白名单,默认不询问
know_hosts = paramiko.AutoAddPolicy()
# 设置白名单
ssh.set_missing_host_key_policy(know_hosts)
# 链接服务器
ssh.connect(
    hostname="10.10.65.91",
    port=22,
    username="root",
    password="1234"
)

# 执行命令
# ssh.exec_command()返回三个类文件对象
# stdin是写权限的文件对象,标准输入
# stdin是读权限的文件对象,标准输出
# stderr是读权限的文件对象,标准错误,特殊的输出
stdin, stdout, stderr = ssh.exec_command("ls /")

# 查看执行结果
result = stdout.read().decode()

print(result)

ssh.close()

这是paramiko模块的基本使用方法

输出了命令执行后返回的值

python paramiko

 

Sftp文件上传下载

通过paramiko可以传输文件

import paramiko

trans = paramiko.Transport(
    sock=(
        "10.10.65.91", 22
    )
)

trans.connect(
    username="root",
    password="1234"
)

sftp = paramiko.SFTPClient.from_transport(trans)

sftp.put("1.py","/lee/main.py")
sftp.get("/lee/main.py", "2.py")
sftp.close()

上面的sftp.put是将本地的当前目录下的1.py,传输为远程服务器上的/lee/main.py,不仅传输过去了,还改了名字

然后sftp.get是将远程服务器上的/lee/main.py传输到本地的当前目录下,并命名为2.py

 

交互式

import paramiko

ssh = paramiko.SSHClient()
know_hosts = paramiko.AutoAddPolicy()
ssh.set_missing_host_key_policy(know_hosts)

ssh.connect(
    hostname="10.10.65.91",
    port=22,
    username="root",
    password="1234"
)

shell = ssh.invoke_shell()
shell.settimeout(1)

command = input(">>>") + "\n"
shell.send(command)

while True:
    try:
        recv = shell.recv(512).decode()
        if recv:
            print(recv)
        else:
            continue
    except:
        command = input(">>>") + "\n"
        shell.send(command)

ssh.close()

在这个循环内,可以进行与远程服务器的交互

相关文章:

  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-17
  • 2018-04-10
  • 2021-11-08
  • 2021-08-18
猜你喜欢
  • 2021-07-15
  • 2021-05-19
  • 2022-12-23
相关资源
相似解决方案