SharedIT | 묻고 답하기(AMP)

shell로 telnet 접속 후 빠져나오도록 하는 스크립트 어떻게 짜면 될까요?

안녕하세요.

aix서버에서 쉘로 telnet 접속 후에 빠져나갈 수 있게 스크립트를 짜고 싶은데

어떻게 짜면 될까요...?

Tags : 태그가 없습니다.

7개의 답변이 있습니다.

Genghis Khan
  0 추천 | 5달 전

#!/bin/bash


# AIX Telnet 접속 정보 설정

AIX_HOST="your_aix_host"

AIX_PORT="your_telnet_port"

USERNAME="your_username"

PASSWORD="your_password"


# Telnet 접속

telnet $AIX_HOST $AIX_PORT


# Telnet 세션에서 명령어 실행 (예: 로그인)

echo $USERNAME

sleep 2

echo $PASSWORD

sleep 2


# Telnet 세션에서 빠져 나오기

echo "exit"


# 스크립트 종료

exit 0

차니
  0 추천 | 5달 전

telnet 기록만 남기려고 하는지? 굳이 로그인 스크립트가 필요한가요?

telnet이나 ssh 접속이든 필요에 의해 접속, 작업하기 위해 하는 것인데? ftp 스크립트도 아니고?

목적이 궁금하네요...

에이스퐝
  0 추천 | 5달 전

제가 봤을땐.. 접속하는 스크립트는 안하는게 좋을 것 같습니다.

스크립트 안에 패스워드와 같은 정보가 기입되어 있어.. 누가 보거나 유출이 된다면

비인가자가 서버를 마음껏 접속할 수 있는 여지를 주기에 추천드리진 않습니다.


Simon.Park
  0 추천 | 5달 전

정확히 어떤 작업을 하시려고 하는지 이해를 못하고 있는 1인입니다.

좀더 자세히 설명을 해 주시면 좋은 답변들이 나올 듯 한데요~~~

wansoo
  0 추천 | 5달 전

요구 하는 내용이...

telnet 으로 자동 접속해서 특정 명령을 수행한 후에 다시 빠져 나오는 스크립트를 만들고 싶다는 내용이 아닐까 하는 생각이 드는데요.


telnet으로 자동 접속하려면...

로긴 계정 ID를 넣고, 물어 오는 암호를 다시 자동 입력되게 한 후에 자동으로 명령이 입력되어 실행되게 해서 실행이 끝나면 exit 명령으로 telnet 접속을 종료해야 하는 형식이 되겠는데요.


id나 암호를 무조건 짧은 시간에 입력해서는 안되고, id를 물어 올때 id를 입력해야 하고, 암호를 물어 올때 암호를 입력해야 하고...

명령을 입력할 때는 이전 명령이 수행된 후에 명령 입력을 기다릴때 입력을 해야 하고, 명령 술행이 모두 끝난 후에 exit 명령을 입력해서 빠져 나와야 하고... 등등의 절차가 필요하게 되는데...


이럴때 사용하는 적절한 tool이 expect 이죠.

telnet을 자동 접속해서 어떤일을 자동적으로 처리하게 할때는 expect를 사용하는 것이 좋습니다.

expect의 사용방법은 아래 링크나, 구글 검색을 통해 찾아 보면서 사용해 보면 될 것 같고요.

https://engineer-mole.tistory.com/233


원격 서버에 어떤 명령을 자동으로 실행시키고 싶은 경우라면...

telnet 보다는 ssh를 사용하는 것이 좋습니다.


ssh에 암호를 자동으로 입력하고 싶은 경우라면 sshpass를 이용해서 ssh를 통해 명령을 실행시키면 되겠고요.

ssh를 이용해서 원격서버에 여러명령을 실행시켜야 할 경우에는 해당 원격 서버에 실행되어야할 여러 명령들을 스크립트로 만들어 두고서 스크립트를 통해서 한번에 실행 시켜 주면 되겠고요.


ssh를 사용하려면 접속하려는 원격 서버에 ssh-server와 접속하려는 컴퓨터 ssh client를 설치해 두고서 사용해야 하겠고...


192.168.0.1 서버에 계정이 id이고 암호가 pass 일 경우에 /home/exec.sh 스크립트를 실행하고 싶을 경우에

sshpass -p 'pass' id@192.168.0.1 -oStrictHostKeyChecking=no /home/exec.sh

와 같이 명령을 주면 되고요.

ssh 명령에 사용한 옵션 -oStrictHostKeyChecking=no는  암호를 직접 입력하기 위한 옵션으로 ssh 서버에 따라 차이가 있을 수 있고요.


구체적인 추가 내용이나, 이해 되지 않는 내용이 있다면 다시 질문 올려 주면 능력되는 한도내에서 설명해 드리겠습니다.

앵그리파파
  0 추천 | 5달 전

"your_aix_server" 및 "your_telnet_port"를 실제 호스트 IP, 텔넷 포트로 변경하고,

스크립트를 저장(telnet_script.sh)하고 실행 가능하게 만듭니다.

chmod +x telnet_script.sh

그런 다음, 스트립트 실행해서 확인해보세요. 

./telnet_script.sh

참고로, 비밀번호를 포함한 로그인 정보를 스크립트에 저장하는 것은 보안상의 이유로 권장하지 않습니다.

topkslee
  0 추천 | 5달 전

아래와 같이 telnet_login.sh 스크립트 파일 생성해서 실행해보시면 어렵진 않을것 같습니다.


telnet_login.sh

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

#!/bin/sh


# 원하시는 내용 입력

HOST="your_server_address"

PORT="your_server_port"ㅏ

USERNAME="your_username"

PASSWORD="your_password"


# telnet 연결

{

  echo open $HOST $PORT

  sleep 2  # 2초정도 접속 대기

  echo $USERNAME

  sleep 2  # 2초정도 접속 대기

  echo $PASSWORD

  sleep 2  # 2초정도 접속 대기

  echo "exit"

} | telnet


# 접속 종료

exit

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