2022年 11月 3日

python 堡垒机讲解及实例

paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作。

SSHClient:用于连接远程服务器并执行基本命令

  1. #coding:utf-8
  2. import paramiko
  3. ssh=paramiko.SSHClient() #创建ssh对象
  4. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接不在know_hosts文件中的主机
  5. ssh.connect(hostname='c1.salt.com',port=22,username='root',password='qwer1234') # 连接服务器
  6. stdin,stdout,stderr=ssh.exec_command('df') #stdin 传送的命令,stdout 存放命令执行的结果,stderr 存放错误信息,stdout/stderr不能同时有信息
  7. result=stdout.read()
  8. ssh.close()

SSHClient 封装transport

  1. #coding:utf-8
  2. import paramiko
  3. transport=paramiko.Transport(('hostname',22))
  4. transport.connect(username='root',password='123')
  5. sftp=paramiko.SFTPClient.from_transport(transport)
  6. sftp.put('D:/Python27/README.txt','/home/server1.py') #将本地D:/Python27/README.txt上传至服务器/home/server1.py
  7. sftp.get('/home/server1.py','D:/') #将/home/server1.py下载到本地D:/
  8. transport.close()

堡垒机的实现 

堡垒机执行流程:

  1. 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码)
  2. 用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表
  3. 用户选择服务器,并自动登陆
  4. 执行操作并同时将用户操作记录

注:配置.brashrc实现ssh登陆后自动执行脚本,如:/usr/bin/python /home/wupeiqi/menu.py

公钥、私钥及堡垒机的实现代码具体见:http://www.cnblogs.com/wupeiqi/articles/5095821.html 

 

转载于:https://www.cnblogs.com/iexperience/p/9296092.html