Python paramiko 사용법 코드 요약
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)
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.