paramiko
安装
pip install paramiko
SSHClient 类
1、介绍
对SSH会话的封装,该类封装了传输(Transport),通道(Channel)及 SFTPClient 建立的方法(open_sftp),通常用于执行远程命令。
2、实例
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname='192.168.1.105', port=22, username='root', password='123456')
# 执行 shell 命令
stdin, stdout, stderr = client.exec_command('ls')
for line in stdout:
print('... ' + line.strip('\n'))
print(stdout.read().decode('utf-8'))
# 创建交互式的执行命令的模式
channel = client.invoke_shell()
command = ""
channel.send(command + '\n')
time.sleep(10)
stdout = channel.recv(1024*100000)
out_list = stdout.decode().split("\n")
# 通过 SSHClient 创建 sftp 连接
sftp_client = client.open_sftp()
remote_file = sftp_client.open("/home/verified_list.txt") #文件路径
try:
for line in remote_file:
print(line.strip())
finally:
remote_file.close()
client.close()
Transport 类
1、介绍
对SFTP客户端的封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作。
2、实例
transport = paramiko.Transport(('120.92.84.249',22))
transport.connect(username='root',password='xxx')
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put('/tmp/id_rsa', '/etc/test.rsa')
sftp.get('remove_path', 'local_path')
# Transport 中 执行 ssh 命令
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin, stdout, stderr = ssh.exec_command('df')
sftp.listdir("/")
with sftp.open(filename, mode="r") as f:
print(f.read())
sftp.mkdir(path)
sftp.rmdir(path)
# 删除文件
sftp.remove(path)
# 重命名
sftp.rename(oldpath, newpath)
# 创建符号链接
sftp.symlink(target_path, path)
# 改变当前路径
sftp.chdir(path)
# 获取当前路径
sftp.getcwd()
# 改变权限
sftp.chmod(path, mode)
# 改变拥有者
sftp.chown(path, uid, gid)
transport.close()
参考
https://blog.csdn.net/u014028063/article/details/81197431