• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

쉘스크립트에서 자동으로 PW입력 후 SCP,ssh 사용하기

달소 달소 3114

1

6

 

안녕하세요. 달소입니다.

 

이번에도 리눅스 관련 팁으로 돌아왔습니다!

 

쉘스크립트에서 ssh나 scp를 사용하게되면 키등록을 하지않는 이상 반드시 pw를 물어보는데요.

이걸 스크립트에서 처리하는방법입니다.

 

expect 설치하기

먼저 상호작용에 필수적인 expect 패키지를 설치해줍니다.

영어 그대로 기대하라는 뜻이 있듯이 특정응답에 따라서 명령어 값을 입력하게 도와줍니다.

ex) ssh 로그인시 password: 라는 응답이 나오듯이요.

 

설치는 OS에 따라 다릅니다.

 

Cent/Rocky/Rhel

yum install expect

Ubuntu

apt install expect

image.png.jpg

 

예제 스크립트

백문이 불여일견이듯.. 스크립트를 사용해서 이해하는게 가장 빠릅니다.

 

scp.sh 라는 스크립트를 만들었을때 내용은 아래와 같습니다.

 

expect는 상호 응답을 기다리는데 맨처름 spawn은 있는그대로의 명령어를 입력하게 해줍니다.

여기서 scp를 통해 접속을 시도하고

password: 라는 응답을 받으면 send를 통해 비밀번호를 넘겨줍니다. 항상 마지막에는 \r을 넣어주세요.

eof는 End-of-file로 파일의 끝을 의미합니다.

#/bin/bash
echo "SCP Upload Script"

expect << EOF
spawn scp -o StrictHostKeyChecking=no scp_upload_test.txt admin-sv@192.168.56.101:/home/admin-sv

expect "password:" {send "[비밀번호]\r"}
expect eof

EOF

 

잘구동되면 아래처럼 됩니다.

 

image.png.jpg

응용한다면 무궁무진하게 사용가능합니다 ㅎㅎ

신고공유스크랩
6
1등
동도리군 2023.01.27. 01:22
ㅎㅎㅎ 이런것도 있네요
웹사이트 큰거 만들때 테스트 배포 자동으로 되도록 할때 이것저것 일이 많았는데
이걸 활용할 수 있으면 git 에서 마지막 부분만 다 받아서 업로드 되도록 처리할 수 있겠네요.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

등록된 글이 없습니다.