使用python设置rsa public key 免密免提示ssh连接服务器的代码

defauth_server(lang_ip):

no_host_check_cmd='sshpass -p "%s" ssh %s -o StrictHostKeyChecking=no ls'%(password,lang_ip)

logger.info('execute------------------->'+no_host_check_cmd)

os.system(no_host_check_cmd)

mk_ssh_dir_cmd='sshpass-p "%s" ssh % smkdir -p .ssh'%(password,lang_ip)

logger.info('execute-------------->'+mk_ssh_dir_cmd)

os.system(mk_ssh_dir_cmd)

If not os.path.isfile('/root/.ssh/id_rsa.pub'):

os.system("""ssh-****** -t rsa -C [email protected] -f /root/.ssh/id_rsa -P "" """)

authorize_cmd="""cat ~/.ssh/id_rsa.pub | sshpass -p "%s" ssh [email protected]%s 'cat>>.ssh/authorized_keys' """%(password,lang_ip)

logger.info('execute-->'+authorize_cmd)

os.system(authorize_cmd)

使用python设置rsa public key 免密免提示ssh连接服务器的代码

 

    思路是sshpass连接到目标服务器,设置 -o StrictHostKeyChecking=no, ls就是随便执行一个命令,省的ssh跳到了目标服务器。生成当前服务器的rsa公钥,然后把它加入到目标服务器的authorized_keys中,就可以直接ssh [email protected]直接连接了。