안녕세계
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
-------------------------------------------------------
끝.