参考:https://blog.csdn.net/qq_40558166/article/details/100172501

一、官网

https://www.paramiko.org/

二、安装库

1.命令

pip install paramiko 

pip install paramiko –i https://pypi.douban.com/simple/

 三、辅助软件(可忽略)

1.Xshell(执行命令)

根据ip,端口,用户名,密码,连接 linux 的黑窗口(shell窗口)

2.Xftp(传输文件)

根据ip,端口,用户名,密码,连接 linux 文件目录

3.linux服务器

可在本地虚拟机上安装,可以租用“弹性云服务器”(不用的时候删掉不计费)。

四、非交互式连接

每次执行一次命令,相当于打开一个黑窗口。想要在一个窗口执行多条shell语句,用分号隔开

import paramiko

# 1.创建一个客户端
ssh = paramiko.SSHClient()
# # 2.创建一个白名单
know_host = paramiko.AutoAddPolicy()
# 3.设置不提醒
ssh.set_missing_host_key_policy(know_host)
# 4.连接服务器
ssh.connect(hostname='XXX', port=22, username='root', password='XXX')
# 5.执行linux命令
while True:
    commnd = input('请输入命令:')
    stdin, stdout, stderr = ssh.exec_command(commnd)
    # stdin 标准输入     文件对象 写权限
    # stout 标准的输出   文件对象 读权限
    # stderr 特殊的输出  文件独享 读权限
    # 查看输出结果
    print(stdout.read().decode())

# 6.关闭连接
ssh.close()

所遇问题:ls不输出任何内容

原因:登录后,当前所在目录为 /root,此目录下无任何文件。

 

cd ..;ls

 

 五、交互式连接

连接后,相当于打开一个黑窗口,可在当前窗口分次输入多条命令

import paramiko

# 创建客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接
ssh.connect(hostname='XXX', port=22, username='root', password='XXX')

# 创建一个shell
shell = ssh.invoke_shell()
shell.settimeout(1)
# 获取命令
command = input('>>') + '\n'
# 发送命令
shell.send(command)

while True:
    if command == 'q' + '\n':
        break
    try:
        # 获取返回的结构
        recv = shell.recv(65535).decode()
        if recv:
            print(recv)
        else:
            continue
    except:
        command = input('>>') + '\n'
        # 发送命令
        shell.send(command)

ssh.close()

六、通过python连接ftp(实现上传和下载)

import paramiko
XXX
trans = paramiko.Transport(sock=('XXX'))

trans.connect(username='root', password='XXX')

sftp = paramiko.SFTPClient.from_transport(trans)

# sftp.put('你要上传的文件','上传的位置/文件名')
#sftp.put('2.png','/2.png')#存储的文件名不同,起到重命名的作用
# sftp.get('你要下载的文件','下载的位置/文件名')
sftp.get('/2.png', '2.png')#存储的文件名不同,起到重命名的作用

sftp.close()

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐