paramiko를 사용하여 루트 비밀번호를 대량으로 변경합니다

요구 사항: 루트 비밀번호는 모두 같습니다. IP를 저장할 파일을 미리 만듭니다.
#vim/home/remote_ssh.py
#!/usr/bin/env python
import sys # 실행 프로그램을 정의하는 데 몇 개의 매개 변수가 필요한 모듈 import paramiko # 원격 sshimport os # 파일의 존재 여부를 판단하는 모듈 import getpass # 암호를 입력하게 하는 모듈 import threading # 멀티스레드 모듈
def remote_ssh(host,pwd,comm):ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy() # 응답 yesssh.connect(host,username='root',password=pwd)stdin,stdout,stderr = ssh.exec_command(comm)out = stdout.read () # 정의 표준 출력err = stderr.read () # 정의 오류 출력 if out:print "Host {0} output is: {1}"format(host,out)if err:print "Host {0} error is:/n{1}".format(host,err)ssh.close()
if name == 'main':if len(sys.argv) != 3: #sys.argv는 프로그램을 포함한 매개 변수의 개수를 print "Usage: {0} ipfile'command"라고 표시합니다.format(sys.argv[0])sys.exit(1)if not os.path.isfile(sys.argv[1]): # IP 파일에 print "No such file:"가 없으면 sys.argv[1]sys.exit(2)
passwd = getpass.getpass("Please input password:")
ipfile = sys.argv[1]
command = sys.argv[2]

with open(ipfile) as fileobj:
for line in fileobj:
    ip = line.strip()
    t = threading.Thread(target=remote_ssh,args=(ip,passwd,command))
    t.start()

#python/home/remote_ssh.py/home/ipaddr.txt'echo 888888 | passwd --stdin root'# 루트 비밀번호 변경 888888888

좋은 웹페이지 즐겨찾기