|
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,测试
|
|
|