代码:
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)运行结果:
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)运行结果: