티스토리 뷰


분산버전관리시스템을 사용하면서 git clone시에 매번 password를 입력하는 것이 불편했습니다.


그 불편함은 인터넷에 널린.. ssh-keygen을 사용해서 개인키를 서버의 .ssh/authorized_keys 에 등록해서

패스워드를 생략하는 방법으로 해소했는데요.


이 방법을 스크립트화 시켜보았습니다.

(여러분의 시간은 소중하니까요)


#!/bin/sh


ID_RSA=~/.ssh/id_rsa.pub 

if [ ! -f $ID_RSA ]; then       #  id_rsa.pub 파일이 없을때만 ssh-keygen을 수행합니다.

expect -c "spawn ssh-keygen" \

                   -c "expect -re \":\"" \

                   -c "send \"\r\"" \

                   -c "expect -re \":\"" \

                   -c "send \"\r\"" \

                   -c "expect -re \":\"" \

                   -c "send \"\r\"" \

                   -c "puts \" \n * ssh-keygen success!!#3 *\"" \

                   -c "interact"

fi


NAME=`whoami`

cat ~/.ssh/id_rsa.pub | ssh $NAME@192.168.0.10 "cat - >> .ssh/authorized_keys"  # id_rsa.pub의 내용을 서버로 보냅니다.


expect 기능은 언제써도 참 유익한것 같습니다 ^^

물론.. 예상 가능한 출력물에 한해서 말이죠.

'개발 > Shell Script' 카테고리의 다른 글

[sh] 함수구현  (0) 2014.04.17
"bash" vs "ash" 서로 다른 배열 스타일  (0) 2014.04.17
[sh] help() 만들기  (0) 2014.02.17
[sh] ssh-keygen 자동생성 (expect)  (0) 2014.02.12
[sh] awk 내장함수 substr  (0) 2014.01.02
[sh] 특정 디렉토리의 파일 리스트 실행  (0) 2013.12.12
댓글
댓글쓰기 폼