Python paramiko 사용법 코드 요약

4107 단어 Pythonparamiko
1. 사용자 이름, 비밀번호 로그인 방식

import paramiko
paramiko.util.log_to_file('paramiko.log') #  
ssh = paramiko.SSHClient()
try:
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  ssh.connect('139.xx.xx.xx', username='work', password='***')
  cmd = 'ls' #  Linux 
  stdin, stdout, stderr = ssh.exec_command(cmd) # 
  print(stdout.readlines())
  print(stdout.read().decode())
except Exception as e:
  print("%s:%s" % (e.__class__, e))
finally:
  #  
  ssh.close()
2. 비밀 접속 해제 방식

import paramiko
ssh = paramiko.SSHClient()
SSH_PRIVATE_KEY ='/Users/xueerhuan/.ssh/id_rsa' # 

try:
  key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY) #  
  #key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY, password='******') #  ,

  ssh.load_system_host_keys() # known_hosts  , known_hosts   known_hosts
  #ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #   ( known_hosts  )
  ssh.connect(hostname='139.XX.XX.XX', port=22, username='root', pkey=key)
  stdin, stdout, stderr = ssh.exec_command("ps")
  #  
  result = stdout.read()
  #  
  print(result.decode())
except Exception as e:
  print("%s:%s" % (e.__class__, e))
finally:
  #  
  ssh.close()
참고: 암호 생성 방법
A, 로컬 ssh 폴더 cd로 들어갑니다.ssh/
B, ssh-keygen을 사용하여 로컬 키와 개인 키 ssh-keygen을 생산합니다
xueerhuan@ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub
C, 생성될 id_rsa.pub 파일의 내용copy가 목표기에 도착했습니다.ssh/authorized_keys에 있으면 돼요. authorized_keys, 직접 만듭니다.하지만 authorized_keys의 권한은 보통 600입니다.
또는 로컬에서 명령을 직접 사용해도 공개 키 복사를 할 수 있습니다. ssh-copy-id 뒤에 접속한 사용자는 비밀 로그인을 하지 않는 사용자를 지원합니다.

morra@ubuntu:~/.ssh$ ssh-copy-id "[email protected]"
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/morra/.ssh/id_rsa.pub"
The authenticity of host '192.168.1.42 (192.168.1.42)' can't be established.
ECDSA key fingerprint is SHA256:/ufx+/OLtdsYy7vsdk4KDu9xJsBp6zHonRAf2jjT0GI.
Are you sure you want to continue connecting (yes/no)? n^H
Please type 'yes' or 'no': yes
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Password:

Number of key(s) added: 1

Now try logging into the machine, with:  "ssh '[email protected]'"  and check to make sure that only the key(s) you wanted were added.

# , authorized_keys 
localhost:.ssh morra$ cat authorized_keys 
3. 비밀번호로 파일 업로드

import os
import paramiko
ssh = paramiko.SSHClient()
SSH_PRIVATE_KEY ='/Users/xueerhuan/.ssh/id_rsa' # 
key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY)
paramiko.util.log_to_file('paramiko.log')

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('139.XX.XX.XX', username='root', password='***')
t = ssh.get_transport()
sftp = paramiko.SFTPClient.from_transport(t)
d = sftp.put("mm.txt", "/home/work/.ssh/mm.txt")
print(d)
4. 파일 업로드 면제

import os
import paramiko
ssh = paramiko.SSHClient()
SSH_PRIVATE_KEY ='/Users/xueerhuan/.ssh/id_rsa' # 
key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY)
paramiko.util.log_to_file('paramiko.log')
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='139.XX.XX.XX', port=22, username='root', pkey=key)
t = ssh.get_transport()
sftp = paramiko.SFTPClient.from_transport(t)
d = sftp.put("mm.txt", "/home/work/.ssh/mm.txt")
print(d)
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기