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