自动化运维paramiko

it2024-06-26  41

pycharm登录linux

代码:

import paramiko def login_ssh_passwd(hostname='192.168.211.128', port=22, username='root', pasword=None, command='hostname'): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=hostname, port=port, username=username,password=pasword) stdin, stdout, stderr = client.exec_command(command) return stdout.read().decode('utf-8') if __name__ == '__main__': result = login_ssh_passwd(pasword='westos') print(result)

运行结果:

ssh无密码自动连接

client:产生公钥id_rsa.pub和私钥id_rsa,并将公钥id_rsa.pub发送给server主机 server:接受公钥id_rsa.pub后,持有私钥id_rsa的client主机即可远程登陆 操作步骤 1、在client主机输入ssh-keygen命令 2、在client主机输入ssh-copy-id -i root@192.168.211.128,将公钥发送给root用户的目标主机 在pycharm上无密码登录root 代码:

import paramiko def login_ssh_key(hostname='192.168.211.128', port=22, username='root', keyfile=None, command='hostname'): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) private = paramiko.RSAKey.from_private_key_file(keyfile) client.connect(hostname=hostname, port=port, username=username,pkey=private) stdin, stdout, stderr = client.exec_command(command) return stdout.read().decode('utf-8') if __name__ == '__main__': result = login_ssh_key(keyfile='/home/westos/.ssh/id_rsa') print(result)

运行结果:

上传与下载文件

代码:

import paramiko def put_file_ssh_key(hostname='192.168.211.128', port=22, username='root', keyfile=None, command='hostname'): tran = paramiko.Transport((hostname,port)) private = paramiko.RSAKey.from_private_key_file(keyfile) tran.connect(username='root',pkey=private) sftp = paramiko.SFTPClient.from_transport(tran) sftp.put('/etc/passwd','/mnt/aa') if __name__ == '__main__': result = put_file_ssh_key(keyfile='/home/westos/.ssh/id_rsa') print(result)

运行结果:

最新回复(0)