Python Paramiko模块linux-ssh 功能
import paramiko
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='192.168.0.25',username='root', password='123456')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('df -h')
# 获取命令结果
res,err = stdout.read(),stderr.read()
result = res if res else err
print(result.decode())
# 关闭连接
ssh.close()
上传文件和下载文件
import paramiko
transport = paramiko.Transport(('192.168.0.25',22))
transport.connect(username='root',password='123456')
sftp = paramiko.SFTPClient.from_transport(transport)
# 将笔记 上传至服务器 /tmp/Test.txt
sftp.put('笔记','/tmp/Test.txt')
#将服务器/root/test.sh下载到本地
sftp.get('/root/test.sh','TEST.SH')
transport.close()
秘钥登录
import paramiko
private_key = paramiko.RSAKey.from_private_key_file('id_rsa.txt')
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
#ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='192.168.0.25',port=22,username='root', pkey=private_key)
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls /opt; df -h')
# 获取命令结果
res,err = stdout.read(),stderr.read()
result = res if res else err
print(result.decode())
# 关闭连接
ssh.close()