2010년 7월 29일 목요일

svn+ssh:// 자동 로그인


subversion을 ssh로 세팅해놨더니만 정말 불편한게..
뭘 할 때마다 비밀번호를 3~4번씩 입력을 해야된다는 거다.
아파치 서버로 세팅해놨을 때는
비밀번호 저장하는 체크박스가 하나 있어서 그걸 체크해 두면 알아서 다 됐는데 말이다. ㄱ-);
이게 너무 귀찮아서 자동로그인을 하려고 좀 알아봤는데..
이걸로 무려 이틀이 넘게 삽질을 했다.  아우 짜증나.. = _=);


아무튼 고고!


1. SSH 자동 로그인 하기

우선 클라이언트 쪽에서 Key를 생성해 보자. (서버 쪽에서 해도 상관없다.)
나는 cygwin을 사용하고 있기 때문에 리눅스 명령어 쯤이야 OK.
$ ssh-keygen -t rsa
$ ls
ssh-keygen 명령을 실행시키면 몇 가지를 물어보는데 첫 번째는 키를 생성할 디폴트 디렉토리 이다. 나중에 이쪽으로 가서 ls로 확인을 하면된다.
두 번째는 키의 password이다. 그냥 엔터를 내리 치면 나중에 ssh 자동접속 할 때 암호를 안물어 보게 된다.
세 번째는 당연히 password 확인이므로 아까 입력한 것과 같은 값을 입력하면 된다.

ssh-keygen 명령으로 rsa 키를 생성하고 ls를 실행시켜보면,
id_rsa와 id_rsa.pub가 생성된 것을 볼 수 있다.
id_rsa.pub는 공개키로 서버가 가지고 있어야 할 것이고, id_rsa는 클라이언트가 가지고 있으면 된다.

자, 그럼 공개키를 서버로 보내주자.
$ scp -p id_rsa.pub username@서버주소:.ssh/authorized_keys
여기서 username은 자신의 계정이고, 서버주소는 ssh로 접속할 서버의 주소이다.
ip주소를 써도 되고.. 그건 서버 나름.

위와 같이 쓰고 엔터를 치면, username의 홈디렉토리에 있는 .ssh폴더 아래 authorized_keys 파일로 복사가 된다.
여기서 파일이름은 꼭 authorized_keys로 해주어야 하는데, 이것은 config파일에 그렇게 명시가 되어 있기 때문이다.
이걸 구지구지 꼭 욕심내서 이름을 내맘대로 하고 싶다고 하면 /etc/ssh/sshd_config 파일을 고치면 된다. (root 계정만 접근 가능하다)

만약 .ssh 폴더가 홈디렉토리내에 없으면 에러가 날 수 있다.
ssh 비밀번호를 물어보게 되는데 일단은 서버에서 사용하는 비밀번호를 입력하여 파일을 보낸다.

이제 클라이언트에서 할 일은 다 끝났다. 접속해보자.
$ ssh username@서버주소
아까 key를 생성할 때 비밀번호를 입력했다면 그 비밀번호를 입력하라고 할 것이고,
그냥 enter만 연신 눌렀다면 바로 그냥 접속이 된다.

만약 아까 key를 생성할 때 비밀번호를 입력했음에도 불구하고 비밀번호를 입력하기 귀찮다면,
다음과 같은 명령어를 수행한다.
$ eval $(ssh-agent)
$ ssh-add
첫 번째 줄 명령어를 수행하면 agent pid 어쩌고 라는 글이 뜬다.
그 때 add 명령어를 수행해주면 비밀번호를 입력하지 않고도 무사히 접속 가능하다.



2. 키 저장하기

만들어 둔 키를 저장해보자.
그러기 위해서는 puttygen파일이 있어야 한다. (다운로드하러가기)
load를 클릭하여 위에서 만든 key를 찾아 load한다.
이 때 pub key를 load하는 것이 아니라 'id_rsa' 파일을 load한다.

load를 하면 key가 뭐라고 뭐라고 뜨는데, 이 때 "Save private key"를 클릭하여 그 키를 적당한 곳에 저장한다. 이름도 지정해주고 확장자는 'ppk'이다.



3. Subversion에서도 자동로그인!!

우선 subversion으로 공유할 폴더를 하나 만든다.
나는 D:\test라고 만들었다. (이건 뭐 상관없다..-_-; 아무의미도 없고;;)
폴더를 만들었으면 폴더에 마우스를 갖다대고 우클릭!!

TortoiseSVN > Setting > Network
하단에 SSH client: 부분에다가 다음과 같이 입력한다.
"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe" -ssh -l username -i"C:\cygwin\home\.ssh\svnTest.ppk" -P 22

여기서 첫 번째 경로는 TortoisePlink.exe의 경로이고 두 번째 경로는 저장한 키(.ppk)가 있는 경로이다.
그리고 username에는 ssh에 로그인할 때 사용할 이름을 입력한다.
마지막 숫자는 ssh의 port번호인데 기본적으로는 22번을 사용한다.

이렇게 해두고 svn에 update나 commit을 위해 접근하면 key에서 사용한 비밀번호를 물어보게 된다.
물론 비밀번호를 지정하지 않았다면 묻지 않겠지만,
비밀번호를 입력했다면 묻는것이 당연하다.



4. pageant 사용

위의 과정에서 비밀번호를 매번 입력하지 않게 하기 위해서 pageant라는 프로그램을 사용한다.
pageant 프로그램도 putty 다운로드 사이트에서 받을 수 있다. (다운로드받으러가기)
다운받아 실행시키면 다음과 같은 창이 뜬다.
여기서 AddKey를 눌러 아까 ppk로 저장해 두었던 파일을 불러온다.
그러면 key가 등록이 된다.
여러 개를 등록할 수도 있다.

이 프로그램을 사용하면, 처음에 컴퓨터를 켤 때만 비밀번호를 입력한 후 그 이후로는 자동으로 로그인 되어 사용할 수 있다.
죄측 하단에 트레이 아이콘으로 계속 살아있다.





덧,

2010년 7월 26일 월요일

으아아아아악. 개짜증나는 ㄹㄷㅎㅅㅍ!!

... 롯데홈쇼핑 두고보자..
다시는 홈쇼핑에서 물건 사나봐라.. ㅡ.,ㅡ


사건의 발단은 오늘 3시반에 걸려온 전화.
롯데홈쇼핑에 가입이 안된다는 어떤 절친한 컴맹 분... ....
얘기를 들어보니 공인인증서로 본인확인을 하는데 계속 본인 확인이 안된다고 뜬다고.. 어떻게 할지 모르겠다는 거다.

나는 우선 든 생각이.
아니 무슨 인터넷 홈페이지 가입을 하는데 공인인증서가 필요하지?
은행에서 인터넷 뱅킹을 하겠다는 것도 아니고.... 이 인간이 뭘 잘못 들어간거 아닐까?
.. 였다.

그래서 나는 내가 직접 가입을 해봤고..
두둥.. 이게 뭐야... 실제로 본인인증을 받고 있었다.
이것은 실명인증이랑은 엄연히 다르다.
실명인증은 아이핀이나 주민등록을 입력하여 조회하는 방법을 사용하고 있었고,
실명인증 후에 한 번 더 본인확인을 하고 있었다.
본인확인을 하는 법은 세 가지. 휴대폰, 공인인증서, 신용카드 방법이었다.
나는 세 가지 방법다 시도하였지만 실패, 실패, 실패!!
다른 컴퓨터에서 시도해봐도 실패, 실패, 실패!!
혹시나 엑티브엑스 모듈을 설치안하고 해서 일까봐 설치 후 재시도 해봤는데도 실패, 실패, 실패!!
인터넷을 끄고 다시켜서 시도해봐도 실패, 실패, 실패!!
거의 한시간 가량을 홈페이지 가입을 위해 싸웠던 것 같다.

두 번째 든 생각이.
아니 무슨 인터넷 홈페이지를 하나 가입하는데 이렇게 힘들면 누가 가입을 하지?
이 자식들은 장사를 하겠다는 거야 말겠다는거야.
지들이 잡스도 아니고 이런 전법으로는 걍 망할텐데.
... 였다.


결국 방법을 찾지 못해 서비스센터로 전화를 했다.
첫번째 통화 시도에 상담원은 전산문제로 보인다며 주문내역을 조회해주고는 주문번호를 알려주었다.
그.러.나. 주문번호로 주문내역을 조회할 수 있는 것은 그 쪽 상담원이나 회사측에서만 가능한 방법.
나같은 일반고객이 그 주문번호로 주문내역을 조회할 수 있는 방법은 없었다.

분노에 가득찬 나는 두 번째 통화를 시도했다.
열심히 설명하다가 열이 받아서는 전산실로 연결해달라고 했다. 그러나 전산실로는 연결해줄 수 없다는 말 뿐.
이 상담원 이름이 기억안나는데 엄청나게 어리버리 한데다가 진짜 짜증나는게 할말이 없으면 정말 말을 안하는거다-_-;
난 끊어진 줄 알고 몇 번이고 다시 확인을 해야했다.
주문 내역서를 메일로 보내준대서 그러라고 했더니, 잠시 뒤에 메일은 안되고 우편이랑 팩스만 된단다.
슈발. 장난하냐-_-).....
지금 당장 필요한걸 우편으로 보낸다니 말이되냐고!!!
팩스가 없는 사람은 어쩌라고?!
상담원이 거의 울기 직전까지 가서 일단 끊었다.

세 번째 통화 시도.
팩스 번호를 하나 얻어와서 팩스로 보내달라고 했다. 알겠단다. 2~30분 내로 보내겠단다.
그러나 나는 10분 내로 필요했다. 아주 급하게!!

네 번째 통화 시도.
10분이 지났는데 도착하지 않아 확인차 전화했다. 14분에 보냈다고 한다.

다섯 번째 통화 시도.
무슨 놈의 주문 내역서가 배송지도 없이 왔다.
이게 무슨 주문 내역서야-_-).... 배송지가 없는데?!!!!!!
열받아서 다시 전화했다. 배송지를 써달라고!!!
그랬더니 자기네는 배송지가 확인이 안된단다.ㅋㅋㅋㅋ
웃기고 있네. 내가 아까 전화에서.. 배송지가 어디로 되어 있냐고 물어봤을 때 XX아파트라고 얘기해 주던데?
어이가 없어서 따졌다.
어쨌든 주문내역서에는 배송지가 안들어 간댄다.
... 그게 어떻게 주문내역서야?! 이것들이 장난하나.. ㅡ.,ㅡ
내가 주문내역서 팩스로 보낼 때 손으로라도 주소를 적어달라고 했다.
해준단다.
그나마 마지막에 통화한 상담원이 가장 말이 잘 통한다.


홈쇼핑은 전화 상담원이 생명인데 전화 상담원 교육도 제대로 안시키나보다.
아는 것도 없고 어리버리하고 말이 계속 바뀐다. 대처도 잘 못한다.
전화 상담원을 너무 급하게 뽑아다 썼나보지?
아무튼 이거 팩스 한장 받을라고 쓴 시간이 2시간 반정도...


명색이 대기업인데.. 이래도 되는 건가. ㄱ-)...
요새 어떤 홈페이지가 가입하는데 이렇게 어려워.....
가입이 안된다믄 되게 해줘야지... 툴툴...
롯데홈쇼핑 가입하려다가 짜증나서 다른 쇼핑몰 가겠네...  인터넷 쇼핑몰이 한두개도 아니고..
아무튼 상담원한테 고객들 편의를 위해서라도 시정해달라고 요청하기는 했지만,
어리버리 상담원께서 회사측에 전달이나 해줄지 모르겠다.


그 와중에 좋았던 점 한 가지는 전화번호가 '080'이라서 무료였다는 점.ㅎ

#99.

2010. 07. 25. 일요일. 날씨: 모르겠듬.

 

 

일요일이다.

지난 주 토요일부터 잠을 거의 자지 못한 상태로 어제 5시가 조금 넘어 집에 들어왔다.

짐정리를 하고 저녁을 먹고 잠이 들어, 오늘이 되었다.

엄마가 일어나라고 깨운시간이 4시가 넘어서였다.

19시간을 잤는데, 일주일동안 잔 시간보다 많이 잔거였다.

아마 엄마가 깨우지 않았더라면 월요일 아침까지 잘 기세였다.

 

 

어제 9시가 넘어서 잤는데, 동생이 저녁에 코밑에 손을 갖다 대봤다고 한다-_-;

죽은 줄알고...;;;;

 

 

여러가지로 느낀게 많은 일주일이었다.

8일동안 15시간 조금 넘게 밖에 자지 못했지만, 그만큼 생각하고 느낄 수 있었던 일주일이었다.

 

어제는 친했던 선배를 보내고 돌아왔다.

안좋게 먼 곳으로 가버린 선배를 보내는 것은 마음이 쓰라렸고, 불편했고, 여러가지 의미로 좋지 않았다.

나보다 그 선배와 더 많이 친했던 내 친구는 너무 많은 눈물을 흘렸고, 다른 선배들과 동기들도 마찬가지였다.

그 와중에 내 눈에서 눈물이 흐르지 않았던 것은 내가 강해서 였을까, 남들보다 슬프지 않았기 때문일까, 그 선배와 좀 덜 친했기 때문일까..

난 아직도 잘 모르겠다. 선배가 왜 그랬는지, 선배가 정말로 가버린 건지, 왜 나는 울지 않았던 건지.

선배의 어머니와 아버지가 오열하는 가운데서 나는 또 마음이 무거웠다.

나는 왜 아무것도 할 수 없는 건지. 또는 할 수 없었던 건지.

 

아직도 실감이 나지 않는다. 선배가 가버렸다는 것에 대해.

 

나는 작년이 이모를 보냈고, 외할아버지를 보냈다.

그 때에도 나는 눈물이 나지 않았다. 마지막에 입관할 때만 조금 울었을 뿐이다.

솔직히 1년이 넘게 지났지만 실감나지 않는다.

보지 못하고 만져지지 않는 것은 여느 때와 똑같지 않은가..

2년전에도 5년전에도 10년전에도 만나지 못하면 보지 못하고 만져지지 않았다.

너무 멀리 가버린 지금은 전화가 되지 않는 것만 다를 뿐 보지 못하는 것은 똑같으니..

정말 어떤 꼬맹이의 말대로 그 쪽에 잘 살고 있는 거다. 다른 나라에..

2010년 7월 21일 수요일

didReceiveLocalNotification

didReceiveLocalNotification는 iphone delegate method들 중 하나이다.

그리고, iOS4에서 새롭게 추가된 녀석이다.



- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notif

{

// to do

}



이 함수는 LocalNotification을 받아 동작하게 되었을 때 호출된다.


다들 알고 있는 사실이겠지만 iOS4는 멀티태스킹을 지원하고 있는데,

background상태에서 돌고 있는 앱이 LocalNotification에 의해 깨어나게 되면 이 함수가 호출된다.


LocalNotification을 받았을 때 처리해주어야 할 일을 넣어 수행하게 한다.

#98.

2010. 07. 21. 수요일. 날씨: 오늘 날씨가 어떻게 될지 모르겠다.


지금 현재 시각은 새벽 3시 45분.
나는 토요일부터 밤을 새고 있다... = _=);


책임감 없는 사람은 정말 싫다.
의지박약아 역시 싫다.
못하겠다는 말이 먼저 나오는 사람은 때리고 싶다.
나도 노력파는 아니지만, 적어도 정말 못하겠거나 하기 싫은건 처음부터 안한다.
도중에 그만 두는 것은 얼마나 많은 사람들에게 피해를 입히는 일인지 모르는 것인가!!
특히 팀단위의 일 같은 경우에.


기한에 맞춰 언제까지 하겠다고 데드라인을 정하면, 그 데드라인 안에 하든가 아니면 처음부터 불가능한 데드라인을 설정해서는 안된다.
그러나 우리나라의 개발자 현실은 엄청나게 빡빡한 데드라인 속에서 급한 곳 구멍때우기 식으로 개발이 진행되고, 일단 출시해놓고 나중에 업데이트 하자는 마인드로 개발을 마친다.
이 얼마나 어이없는 일인가.


사람이라 불릴려면 세 가지 중 하나는 있어야 한다.
외모가 뛰어나게 멋있거나 이쁘든가, 머리가 좋아 능력이 출중하거나, 심성이 밀만큼 곱던가.
이쁘고 능력있고 착한사람은 별로 없긴하다. 그러니까 하나라도 하자.
셋 중에 하나도 안되는 사람은 이도저도 못하니 그러다가 걍 죽는거다.

그런데, 개발자도 세 가지 중 하나는 있어야 한다.
인맥이나 돈으로 어떻게든 땜빵을 하든가, 머리가 좋아 능력이 출중하거나, 체력이 좋아 밤을 잘 새든가.
물론 셋 다 되면 바랄게 없겠지만, 하나나 둘이라도 되면 OK.
셋 중에 하나도 안되는 사람은 개발자 하지 마시길.
여러 사람에게 피해다.

2010년 7월 16일 금요일

#97.

2010. 07. 14. 수요일. 날씨: 완전 후텁지근. 끕끕함.


정신없는 주를 보내고 있다.
월요일날 갑자기 연락이 온 동기놈한테서 동기 중 하나가 상을 당했다는 얘기를 들었다.
많이 친한 동기는 아니었지만, 그래도 동기니까 가보고 온 것이 바로 어제. 화요일.
월요일에 집에 가서 정장을 가지고 와 그 다음날 바로 가본 것이다.
장소가 하남시라서 멀고 먼 길을 갔다와 버스가 끊길 위기에서 친구네 집에 들어가 자고, 친구 옷을 빌려 입고 친구 쪼리를 신고 (정장 구두 신기 싫어서..) 교육을 받으러 온 상태였다.

그 상태에서 친구의 전화를 받은 것은 11시가 좀 넘어서였나...
선배 아버님이 돌아가셨다는 얘기를 들었다.
2연타. 뒷통수를 뻑뻑 맞고.

그 상태로는 도저히 어디도 갈 수 없었기에, 친구네 들러서 다시 정장을 챙겨가지고 옷갈아 입고 구리로 갔다.

이래저래 이런 일이 한꺼번에 생기니까 마음도 불편하고 기분도 우울해지는 느낌.


나도 벌써 이런 나이가 되었구나.. 라는 생각과 함께.
그저 막연하지만 .. 나쁜 일 보다는 좋은 일이 많았으면 좋겠다는 느낌.

그래도 어제도 그렇고, 오늘도 그렇고, 학교 선후배동기들 간만에 많이 만났다.
우리나라는 좋은 일이든 슬픈 일이든 함께 할 수 있는 문화라서 참 좋다.






요새 교육받고 있는 곳에 한창 많이 피어있는 "계란후라이 꽃"
정식 명칭은 모름-ㅠ-;