1.
pip install paramiko
2. 모듈 가져오기
import paramiko
3.
def initSshClinet(): ''' 초기화, SSH 연결 계정 및 비밀번호를 사용하여 서버에 로그인합니다. sshClinet ''' ip = ""#서버 IP 주소 sshClinet = paramiko.SSHClient() sshClinet.set_missing_host_key_policy(paramiko.AutoAddPolicy()) sshClinet.connect(ip, 22, userName, pw, timeout=360) return sshClinet
def exeCommond(commond): '''쉘 명령 실행''' stdin, stdout, stderr = sshClient.exec_command(command) outStr = stdout.readlines() print("n".join(outStr))
def sftpUploadFile(localPath ,remotePath): # SFTP 인스턴스 가져오기 sftp = sshClinet.open_sftp() #업로드 작업 수행 sftp.put(localPath,remotePath)
def sftpDownloadFile(localPath,remotePath): #SFTP 인스턴스 가져오기 sftp = sshClinet.open_sftp( ) #다운로드 작업 수행 sftp.get(localPath,remotePath)
마지막에 연결을 닫는 것을 기억하세요
sshClient.close()
개인 키를 사용하여 로그인할 수도 있습니다:
# 개인 키를 구성합니다 키 파일 위치 private = paramiko.RSAKey.from_private_key_file('/Users/ch /.ssh/id_rsa')#Instantiate SSHClientclient = paramiko.SSHClient()#추가되지 않은 경우 서버의 호스트 이름과 키 정보를 저장하는 정책을 자동으로 추가합니다. , 로컬 Know_hosts 파일에 더 이상 기록되지 않는 호스트는 클라이언트에 연결할 수 없습니다. set_missing_host_key_policy(paramiko.AutoAddPolicy())#SSH 서버에 연결하고 사용자 이름과 비밀번호로 인증합니다 client.connect(hostname='10.0 .0.1',port=22,username='root',pkey=private)
Learn
paramiko에는 SSHClient와 SFTPClient라는 두 가지 핵심 구성 요소가 포함되어 있습니다.
SSHClient 기능은 Linux ssh 명령과 유사하며 SSH 세션을 캡슐화한 것입니다. 이 클래스는 전송, 채널 및 SFTPClient 설정 방법(open_sftp)을 캡슐화하며 일반적으로 원격 명령을 실행하는 데 사용됩니다. SFTPClient의 기능은 Linux의 sftp 명령과 유사하며 SFTP 클라이언트를 캡슐화하고 파일 업로드, 다운로드, 파일 권한 수정과 같은 원격 파일 작업을 구현하는 데 사용됩니다.
Channel은 안전한 SSH 전송 채널인 Socket입니다. Transport는 암호화된 세션을 사용하면 클라이언트가 유지 관리하는 개체인 ChannelSession이 동시에 생성됩니다. 서버와의 연결. 세션을 시작하려면 connect()/start_client()/start_server()를 사용하세요.
SSHClient에서 일반적으로 사용되는 방법 소개
connect(): 원격 서버의 연결 및 인증을 구현합니다. 이 방법의 경우 호스트 이름만 필수 매개변수입니다.
hostname 연결 대상 호스트 port=SSH_PORT 지정 포트 username=None 확인용 사용자 이름password=None 확인용 사용자 비밀번호 pkey=None 인증용 개인 키 방법 key_filename=None 파일 이름 또는 파일 목록, 개인 키 지정 file timeout= 없음 선택 사항 tcp 연결 시간 초과 Allow_agent=True SSH 에이전트에 대한 연결 허용 여부, 기본값은 True입니다. make look_for_keys=True ~/.ssh에서 개인 키 파일을 검색할지 여부, 기본값은 True입니다. allowed 압축=False 압축 켜기 여부
set_missing_host_key_policy(): Know_hosts 파일에 원격 서버가 기록되지 않은 경우의 응답 정책을 설정합니다. MissingHostKeyPolicy의 하위 클래스를 전달합니다. 현재 세 가지 전략이 지원됩니다.
연결된 원격 호스트에 로컬 호스트 키 또는 HostKeys 개체가 없는 경우 전략을 설정합니다. 현재 세 가지 전략이 지원됩니다.
AutoAddPolicy가 자동으로 호스트 이름을 추가합니다. 로컬 HostKeys 객체에 대한 호스트 키는 load_system_host_key의 구성에 의존하지 않습니다. 즉, 새 SSH 연결을 설정할 때 확인을 위해 yes 또는 no를 입력할 필요가 없습니다. WarningPolicy는 알 수 없는 호스트 키에 대한 Python 경고를 기록하는 데 사용됩니다. 그리고 수락합니다. 이 기능은 AutoAddPolicy와 유사하지만 새로운 연결을 요청하는 메시지가 표시됩니다. RejectPolicy는 load_system_host_key의 구성에 따라 알 수 없는 호스트 이름과 키를 자동으로 거부합니다. 이것은 기본 옵션입니다
exec_command(): 원격 서버에서 Linux 명령을 실행하는 방법입니다.
open_sftp(): 현재 SSH 세션을 기반으로 SFTP 세션을 생성합니다. 이 메소드는 SFTPClient 객체를 반환합니다.
SFTPClient의 일반적인 방법 소개
from_transport(cls,t): 연결된 SFTP 클라이언트 채널 생성 put(localpath, remotepath, callback=None, verify=True): 로컬 파일을 서버에 업로드 매개변수 확인: 여부 stat() 메소드를 호출하여 파일 상태를 확인하고 ls -l get(remotepath, localpath, callback=None)의 결과를 반환합니다. 서버에서 로컬로 파일을 다운로드합니다. mkdir(): 서버에 디렉터리를 생성합니다. Remove(): 서버 디렉터리에서 삭제 rename(): 서버에서 디렉터리 이름 바꾸기 stat(): 서버 파일 상태 보기 listdir(): 서버 디렉터리의 파일 나열
위 내용은 Python으로 자동화된 운영 및 유지 관리를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!