자동화

SSH 비밀번호 입력 자동화, 단어 하나 입력으로 SSH하기 (운영체제 Mac & Linux & *nix)

joohyukkim 2022. 8. 6. 23:36

# 서론

 개발하다보면 서버에 원격으로 접속(SSH)해서 개발해야하는 경우가 있다.

 보통 그런 경우, 한두번이 아니라 자주 접속해야 한다.

 이번에 내가 최소화려는 작업은 unix 운영체제의 alias를 적극 활용한다. (Alias 에 대한 설명은 SKIP)

 보안은 각자&모두의 책임입니다.

 


 

# 내가 자동화하려는 부분

  1. 접속 대상 서버의 IP 주소와 포트번호를 찾는다 (기억하는건 고려대상에서 제외)
  2. ssh joohyukkim@192.123.456.789 -p 8412 (예시)와 같은 명령어 입력
  3. 비밀번호 입력

 


 

# 원하는 기대효과

 마치 로컬 디렉토리를 cd(명령어)로 이동하듯이 서버에 ssh하기

 


 

# 원리

 ssh 에서는 패스워드를 입력하는 부분이 없기 때문에 sshpass 라는 프로그램을 이용한다.

 sshpass 에서 ssh 명령어와 interaction을 하면서 비밀번호 전닮

 


 

# 방법

1. sshpass 다운로드

# Linux
$ sudo apt-get install sshpass

# Mac
$ brew tap esolitos/ipa
$ brew install sshpass

 

2. alias 로 등록하기 (예시는 iTerm2 기준)

1. 비밀번호 생성하기
# echo 'ssh시입력하는비밀번호' >> 로컬에저장할-full-파일-path      
$ echo 'user12pass' >> '~/users/joohyukkim/configs/passfile' 

2. 비번파일에 대한 권한 설정
$ chmod 600 '~/users/joohyukkim/configs/passfile'            

3. 터미널 단축키 등록(alias)
# .zprofile 은 터미널이 iTerm2 인 경우, 맥 기본은 ~/.bashrc 인가에 해줘야하는것으로 기억함
# echo alias 원하는단축키명=\’sshpass -f 비번파일_경로 ssh 서버유저네임@서버IP주소 -p 포트번호\’ >> ~/.설정파일
$ echo alias sshmyservice=\’sshpass -f ~/users/joohyukkim/configs/passfile ssh joohyukkim@192.123.123.321 -p 3381\’ >> ~/.zprofile

4. 사용하기
$ sshmyservice

5. 원격접속 성공~

 


 

참고자료