paramiko
#SSHClient (用户连接远程服务器执行基本的命令)
基于用户名及密码
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='10.10.1.26', port=22, username='root', password='root1')
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
ssh.close()
#SSHClient封装Transport
import paramiko
transport = paramiko.Transport(('10.10.1.26', 22))
transport.connect(username='root', password='root1')
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
ssh.close()
基于密钥:
import paramiko
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='10.10.1.26', port=22, username='root', pkey=private_key)
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
ssh.close()
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
transport = paramiko.Transport(('10.10.1.26', 22))
transport.connect(username='root', pkey=private_key)
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
ssh.close()
#SFTPClient (用户连接远程服务执行上传下载文件操作)
import paramiko
transport = paramiko.Transport(('10.10.1.26', 22))
transport.connect(username='root', password='root1')
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put('/opt/packages/tengine-2.2.0.tar.gz', '/tmp/tengine-2.2.0.tar.gz')
sftp.get('/tmp/tengine-2.2.0.tar.gz', '/tmp/tengine-2.2.0.tar.gz')
transport.close()
import paramiko
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
transport = paramiko.Transport(('10.10.1.26', 22))
transport.connect(username='root', pkey=private_key)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put('/opt/packages/tengine-2.2.0.tar.gz', '/tmp/tengine-2.2.0.tar.gz')
sftp.get('/tmp/tengine-2.2.0.tar.gz', '/tmp/tengine-2.2.0.tar.gz')
transport.close()