강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

SSH 자동 로그인 스크립트.

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

 0. 개요

서버 작업을 하다 보면, 여러대 서버에 접속 해서 같은 작업을 해야 하는 경우가 있다.

하나하나의 서버에 다 접속 해야 되고, 명령어도 다 써줘야 한다.

이런 작업이 자주 있을때, 효율 적으로 작업 할 수 있도록 간단한 스크립트를 만들어 보겠다.


1. 준비

SSH 자동 로그인 스크립트를 만드릭 위해서는 sshpass 라는 툴이 필요 하다.

우분투에서는 apt-get -y install sshpass 로 바로 설치가 가능 하고

centos, sulinux..등은 소스를 다운 받아 컴파일 해줘야 한다.


2. sshpass 툴 옵션

sshpass -p 패스워드 ssh 아이디@도메인 명령어

    예) sshpass -p 123456 ssh abcde@abcde.co.kr

이때, -p 옵션 다음에 나오는 패스워드를 위와 같이 사용하기 싫으면 vi로 파일을 만들어 거기에 적어 놓고 사용 할 수 있다

    예) vi pass

         123456


         sshpass -f pass ssh abcde@abcde.co.kr


이렇게 간단하게 로그인 되면 좋겠지만. 처음 접속 하는 서버나, 디스크 등의 문제로 교체 및 재설치 하는 경우

known host에 저장 할 것인가? 라는 메세지가 뜬다. 이럴때 아래와 같이 사용하면 된다.

     예) sshpass -f pass ssh -oStrictHostKeyChecking=no ssh abcde@abcde.co.kr

-oStrictHostKeyChecking=no 옵션은 known host에 저장 할 것이냐는 질문에 yes를 누르고 넘어가는 옵션이다.


3. SSH 자동 로그인 스크립트 예제

접속 해서 작업 해야 하는 서버가 1~2대 일경우는 이런 스크립트도 필요 없이 작업 하면 되지만.

10대 20대 30대 이렇게 점점 만아 질수록, 한숨 부터 나온다.

vi login.sh

#!/bin/bash

for i in $(seq 1 10); do
        sshpass -f pass ssh -oStrictHostKeyChecking=no root@192.168.0.${i} "ls; exit;"
done

위 예제는 IP 192.168.0.1에서 192.168.0.10번 서버까지 접속 해서 ls 명령을 내리는 스크립트 이다.

########################################################################################

vi hosts.allow.sh

#!/bin/bash

for i in $(seq 1 10); do
        sshpass -f password ssh -oStrictHostKeyChecking=no root@192.168.0.${i} "echo "ALL : 192.168.100.3" >> /etc/hosts.allowt; exit"
done

위 예제는 hosta.allow에 ALL : 192.168.100.3 을 추가하는 내용이다.


4. 마무리

위 스크립트는 간단 하지만, 많은 서버에 작업을 해야 할 경우 아주 유용하다.

간단한 예를 들어 설명을 했지만, 주기적으로 해야 되는 패스워드 변경 작업 등

조금만 더 생각 해보면 많은 곳에 사용 할 수 있는, 유용한 스크립트이다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,798 개
  • 현재 접속자 :  140 명