본문 바로가기
프로그래밍/delphi

plink (putty)를 이용한 ssh 접근 및 스크립트 실행

by 메르세데쓰 2022. 9. 8.
반응형

안녕하세요 델파이 개발자님들!

 

이번에 델파이를 이용하여 plink.exe (putty)를 이용하여 ssh 터미널에 접근하는 방법과.. 예정된 명령어를 실행(스크립트)하는 방법을 정리해 봤습니다.

 

 

ssh접속은 putty라는 매우 훌륭한 무료 프로그램이 있어서 이용하면 되지만..  여기서 제공하는 API 이용하여 프로그램을 만든다면.. 우리에게 필요한 무언가를 만들 수 있습니다!

 

plink.exe라는 putty설치 시 같이 포함되는 인터페이스 파일이 있습니다. 이걸 이용하면 되겠습니다.

 

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

 

자신의 운영체제에 맞는 걸 다운받으시면 되지만.. delphi(델파이)를 이용할 것이기 때문에 윈도우.. 비트를 잘 모르시면 그냥 32bit를 다운로드하시면 됩니다.

 

plink.exe를 다운로드 받습니다.

 

준비가 되었으니.. 델파이를 열고 매우 간단하게 작성해 보았습니다.

 

버튼을 누르면.. plink.exe가 실행!

 

버튼 클릭 시 소스는 매우 간단합니다!

 

procedure TForm1.Button1Click(Sender: TObject);
var t_STR : String;
begin
   //text.txt 스크립트파일
   t_STR := ' -ssh -P 포트번호 계정@ip번호 -pw 비밀번호 -t -m "test.txt"';  

   //SW_HIDE   SW_SHOWNORMAL
   ShellExecute(Handle, 'runas', 'plink.exe',PChar(String(t_STR)),'' , SW_SHOWNORMAL);   
end;

 

ssh로 서버에 접속해서..  text.txt에 준비된 명령어를 실행하는 것입니다.  참고로 -m 옵션을 주어야 뒤에 파일 안의 명령어를 수행할 수 있습니다.  명령어가 종료되면 창이 닫히게 됩니다.

 

자세한 옵션은 putty사이트를 참고하시면 됩니다.

https://the.earth.li/~sgtatham/putty/0.77/htmldoc/Chapter7.html#plink

 

 

notepad - text.txt

 

ssh로 접근해서 실행될 명령어는 ls -al 입니다. 그냥 조회하는 것인데 -m 옵션의 경우 수행 후 창을 종료해 버리기 때문에 확인을 위해 빨리 닫히지 않게 여러 번 입력해 놓은 것입니다.

 

 

버튼을 클릭해 수행해 보면.. 아래와 같이 됩니다.

 

plink를 이용한 ssh 접속 후 스크립트 실행

 

스크립트 파일에 경로 이동 후 어떤 작업을 한다.. 또는 잘 만들어둔 스크립트를 입력해 놓으면 정말! 잘 작동합니다.

 

그리고 잘 아시겠지만..  ShellExecute 시  ShowCmd 파라미터에 SW_HIDE 옵션을 주게 되면.. 창이 숨겨진 채로 돌아갑니다. 

ShellExecute

 

물론 유료 컴포넌트를 이용하여 네이티브로 돌아가도록 개발하는 방법이 있을 수도 있습니다. 돈이 들어가겠죠.. 

 

하지만, 배포를 해야 하는 조금의 불편함을 감수하면.. PLINK가 SSH 접속과 쉘스크립트가 가능하니 좋은 대안이 될 수 있을 것입니다. 감사합니다.

반응형

댓글