Python을 사용한 SSH

Manav Narula 2023년1월30일
  1. Python의paramiko라이브러리를 사용하여 SSH 연결 생성 및 명령 실행
  2. subprocess모듈을 사용하여 SSH 연결 생성 및 명령 실행
Python을 사용한 SSH

SSH (Secure Socket Shell의 약어)는 알려지지 않은 안전하지 않은 네트워크를 통한 보안 암호화 통신 서비스를 위해 많이 사용되는 네트워크 프로토콜입니다. 이를 통해 원격으로 이러한 네트워크를 통해 두 장치간에 명령을 보낼 수 있으며 많은 응용 프로그램이 있습니다.

Python에는 이러한 SSH 실행을 허용하는 모듈이 있습니다. 이 자습서에서는 SSH 연결을 보호 한 후 원격 장치에 셸 명령을 실행하는 방법에 대해 설명합니다.

Python의paramiko라이브러리를 사용하여 SSH 연결 생성 및 명령 실행

paramiko모듈은 Python에서 SSH 프로토콜을 구현하는 데 자주 사용됩니다. 서버 및 클라이언트 측 통신을 모두 허용합니다.

이 모듈을 사용하여 원격 장치에서 쉘 명령을 실행하려면 아래 코드를 확인하십시오.

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)

SSHClient()함수는 SSH 서버 세션을 지정합니다. connect기능에서 적절한 인증 세부 정보를 사용하여 장치에 연결합니다. exec_command()함수를 사용하여이 장치에서 필요한 명령을 실행할 수 있습니다.

spur라는 또 다른 모듈은이 모듈에서 파생되었지만 약간 더 나은 인터페이스를 가지고 있습니다.

subprocess모듈을 사용하여 SSH 연결 생성 및 명령 실행

subprocess모듈의check_output()함수를 사용하여 전달 된 명령을 실행할 수 있으며이 함수는이 명령의 출력을 반환합니다. 이 기능으로 비밀번호없는 SSH 연결을 생성하여 필요한 명령을 실행할 수 있습니다.

다음 코드는 이에 대한 예를 보여줍니다.

subprocess.check_output(["ssh", "my_server", "echo /*/"])

이 모듈에서 사용할 수있는 또 다른 방법은Popen()입니다. 명령 및 외부 프로그램을 실행하는os모듈의os.Popen()함수와 유사합니다. 이 모듈에서Popen은 메소드가 아니라 클래스입니다. 필요한 명령과 함께 지정해야하는 다양한 매개 변수로 인해 이것을 사용하는 것은 약간 복잡합니다. 4 개의os.Popen()함수를 모두 하나로 결합합니다. 또한 별도의 프로세스로 명령을 실행합니다. 아래와 같이 SSH 연결을 생성하고 명령을 실행하는 데 사용할 수 있습니다.

subprocess.Popen(
    "ssh {user}@{host} {cmd}".format(user=user, host=host, cmd="ls -l"),
    shell=True,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
).communicate()
작가: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn