python实现免密码登录lunx服务器

import paramiko
import os
hostname='192.168.76.10'
username='root'
# password='123456'
ssh=paramiko.SSHClient()
ssh.load_system_host_keys()
# ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
privatekey=os.path.expanduser('d:/job/id_rsa_2048')
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
key=paramiko.RSAKey.from_private_key_file(privatekey)
ssh.connect(hostname=hostname,username=username,pkey=key)
stdin,stdout,stderr=ssh.exec_command('free -m')
print stdout.read()
ssh.close()

  • 其中利用了公钥密钥的原理,比如有PC和一台服务器,PC想实现免密码登录linux服务器,就可以生成公钥和密钥,把公钥拷贝到lunx服务器,登录时用自己的密钥来登录
  1. 其中xshell可实现pc机的公钥和密钥:工具-新建用户密码向导可创建公钥密钥
  2. 在服务器端ssh-keygen -t rsa可在根目录下创建.ssh目录并修改了权限,所以我们用这个工具直接生成,免得创建目录和修改密码,在.ssh目录下的id_rsa和id_rs_pub分别的一个私钥和公钥,是用来自己无密码登录别人的
  3. 在.ssh目录下创建authorized_keys文件,并把pc端生成的公钥内容拷贝进去。
  4. 经过配置使用私钥验证就可以免密码登录了。
posted @ 2018-04-20 12:22  old_bird  阅读(430)  评论(0编辑  收藏  举报