sky 发表于 2015-12-31 08:36:24

jumpserver keys&user同步

1、两台jumpserver做密钥免密码登录
      很常见的部署,这里略过,如有不会者,请教百度老师

2、jumpserver 平台在添加用户的操作都是在juser/views.py 脚本中完成的,只需要修改此文件即可
import paramiko

def ssh_login(cmd):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect("ip",端口,"用户", '密码')               #密钥免密码登录,密码就为空
    stdin, stdout, stderr = ssh.exec_command(cmd)
    ssh.close()

#定义ssh远程登录、执行函数

def gen_ssh_key(username, password=None, length=2048):
    bash('scp -P端口 %s 用户@ip:/home/%s/.ssh/' % (public_key_file,username))   #新增
    bash('chown %s:%s %s' % (username, username, public_key_file))
    ssh_login("chown -R %s:%s /home/%s/" % (username, username, username))      #新增
#bash函数执行scp shell命令,将用户产生的密钥传给另一台jumpserver
#ssh_login函数,远程执行密钥文件的用户属性

def server_add_user(username, password, ssh_key_pwd):
    bash("useradd '%s'; echo '%s' | passwd --stdin '%s'" % (username, password, username))
    ssh_login("useradd '%s' | passwd --stdin '%s'" % (username, username))   #新增
    ssh_login("mkdir -p /home/%s/.ssh" % (username))                           #新增
    gen_ssh_key(username, ssh_key_pwd)
#远程执行useradd添加用户
#远程执行创建用户.ssh目录

def server_del_user(username):
    bash('userdel -rf %s' % username)
    ssh_login('userdel -rf %s' % username)                                     #新增
#远程执行删除用户及用户目录
重启uwsgi,测试       




页: [1]
查看完整版本: jumpserver keys&user同步