Ssh 접속 스크립트 - Ssh jeobsog seukeulibteu

안녕세계

Infra/Linux

[Linux] 쉘 스크립트로 간편하게 SSH 접속하기

Junhong Kim 2018. 5. 9. 15:46

SSH 접속 방법

일반적인 SSH 접속 방법

$ ssh -l [username] [ipaddress] [-p portnumber]

간편한 SSH 접속 방법

쉘 스크립트 파일에 해당 SSH 정보를 저장하고 실행합니다.

1. 쉘 생성

$ cd ~/bin $ vi [filename].sh

2. 쉘 코드

#!/bin/sh # 실행시 출력 메시지 echo "Welcome to [filename]" # user명 입력받기 read -p "user: " user # 실제 실행되는 쉘 ssh -l $user xxx.xxx.xxx.xxx [-p portnumber]

3. 쉘 실행

# 쉘 실행 $ sh [filename].sh Welcome to [computer_name] user: root `s password: # 접속 성공시 [ ~]$

CentOS linux 기준

bash shell 과 expect 를 이용 하여 SSH 를 지원 하는 [ 서버 or 네트워크 or 보안 ] 장비에 대해 접속을 하고

명령어를 날릴 때 자주 사용 하는 경우가 많습니다.

### 보안상 좋지 않습니다.

[root@localhost]# ./ssh_script.sh IP ID PW PORT

커맨드는 파일 안 function 부분의 빨간 부분 내용을 수정 하여 사용

expect "# " { send "\r" }

ex)

[root@localhost]# ./ssh_script.sh [IP] [userid] [passwd] [port번호]

[root@localhost]# ./ssh_script.sh 192.168.0.10 root test123 22

------------------------------------------------------

[root@localhost]# cat ssh_script.sh

#!/bin/bash
#######################################################
### parameter
#########################################################
/usr/bin/rdate -s zero.bora.net > /dev/null 2>&1
now_date=`date +%Y-%m-%d-%H-%M`
rpmcheck=`rpm -qa expect | grep expect | wc -l`
host=$1
user=$2
passwd=$3
port=$4

#######################################################
### ssh
#########################################################
function ssh
{
echo -e " " 
echo -e " " 
echo -e -n "  sctip start ? (Y/N) : "
read answer
if [ "$answer" = "y" -o "$answer" = "Y" ]; then
echo -e " "
echo -e " ### start script ###"
echo -e " "

expect <<EOF
        log_file -noappend ./${now_date}.sshlog
        set timeout 3
        spawn ssh ${user}@${host} -p ${port}
        expect "yes/no" {
                send "yes\r"
                expect "*?assword" { send "${passwd}\r" }
            } "*?assword" { send "${passwd}\r" }
        expect "# " { send "\r" }
        expect "# " { send "\r" }
        expect "# " { send "\r" }
        expect "# " { send "\r" }
        expect "# " { send "exit \r" }
        expect eof
EOF
        echo -e " "
        echo -e " ssh connect  working! finish "
        echo -e " "

else
echo -e " Incorrect input. "
exit
fi
}
#########################################################
### rpm check
#########################################################

  if [ ${rpmcheck} == "0" ]; then
  echo -e " rpm Auto install expect "
  yum install -y expect
  ssh
  else
  ssh
  fi

chmod 000 ./*.sshlog

-------------------------------------------------------

끝.

Toplist

최신 우편물

태그