아침 비몽사몽간에, 며칠 동안 하고 싶었던 것을 했다. 아이폰 비밀번호 바꾸기. 그 일이 오늘 하루 절반을 매우 절망적이게 만들었다. 비밀 번호를 바꾼지 1분도 안돼서 잊은 것이다. 어떻게 그럴 수 있지? 틀린 비번을 넣을 때마다 입력 대기시간이 늘어났다. 1분이던 것이 5분이 됐고, 15분이 됐으며, 한 시간이 됐다. 대략 그렇게 10번 이상인가를 틀리게 넣자마자 아예 잠금상태가 됐다. 더 이상 비번을 넣을 기회도 주지 않는다. 어렵지 않은 숫자였으며, 분명 조합 몇 개로 찾을 수 있을 것 같았다. 아마 대기 시간이 늘어 나지만 않았어도 바로 찾아 냈을지도 모른다. 다행인 것은, 내 아이폰을 노트북에 USB로 연결하면 바로 백업을하도록 설정해 놓은 탓에, 백업이 존재하고 있었고, 폰 초기화 후에 백업본..
Do you know sed? 어떤 특정 파일을 수정하는 스크립트가 유용할 때가 있다. 예를 들면 /etc/ssh/sshd_config 파일에 "AcceptEnv GIT_*" 같은 것을 추가하는 것 말이다. sed 옵션을 보면 -i 라는 sed 의 취지와 상관없는 듯한 파일을 수정하는 옵션이 있다. sed는 stream editor 이므로, pipe 로 흘러가는 text 에서 줄 단위로 에디팅 하기 위한 유틸리티 (유틸리티 치고는 내부 명령이 많은 언어 수준이긴하다)이므로 파일을 inplace 로 수정하는 옵션은 예상하기 힘들다. (아니 이 유틸리티를 사용하는 것 자체가 힘든거야 요샌! 마음대로 힘든 수준을 정하지 말라고!) 그래서 가장 많이 쓰는 sed 옵션은 외우다시피 쓰는 이런 것 아닌가? cat ..
꿈 하나를 진하게 꾸는 중에 생각의 전환을 하는 계기가 될 것 같아서 기록을 한다. 예전 회사를 방문할 일이 생겼다. 아마 누군가를 소개 받거나, 기술적인 것을 물어 보기 위해서 방문하는 아주 고전적인 이유에서의 방문이었다. 코로나로 인한 마스크 쓰기, 사회적 거리두기도 없는 상황으로 꿈은 전개 됐다. 나를 친절하게 알아봐 준 분은 내 기억 상 한 두 번 인사하고 존재는 알지만 어떤 일을 하는지 잘 모르는 그런 분이었다. 이렇게 일방적으로 친한 척 해주니 정보의 비대칭으로 인한 친밀감에 내 대응은 궁색했다. 이어진 두 번의 꿈의 첫번째 꿈에서 그는 서버 프로그래머였던 것으로 느껴졌고, 근처 카카오에 다니는 정 모 님과 인상이 비슷한 것으로 기억하고 있고 (물론 그가 들으면 말도 안되는 소리라고 하겠지만,..
상태어떤 프로젝트에 기생하는 폴더가 하나 있다. 여하한의 이유로 그 폴더가 분리되지 않은 채 있었고, 변경이력이 장기간 쌓여 왔다. 이젠 새로운 저장소로 해당 폴더만 이관하고 싶다.아이디어"git log" 명령으로 특정 파일들 또는 폴더만 지정하여 해당 경로에 영향을 준 커밋만 뽑을 수 있다."git log" 명령에는 커밋의 diff 를 출력해 볼 수 있는 "--patch" 옵션 (또는 줄여서 -p)이 있다."git log" 명령에는 binary의 변경 또한 출력할 수 있는 "--binary" 옵션이 있다."git rebase" 명령의 내부에서는 일련의 변경 이력을 replay하는 방법으로 구현된다."git am" 명령이 "git rebase" 내부에서 동작하는 방식이며, 포맷은 무려(!) 이메일 포맷이..
Linux 명령어로 제공되는 gnu coreutils의 sleep 은 양의 실수를 한 개 이상 인자로 받는다. 따라서 위와 같이 하면 10초를 쉴 수 있다. # pi, e, garbages # 10초 쉬기 sleep 3.14159265 2.71828182 4.14012553 sleep 3.14159265 2.71828182 3.14159265 0.99853288 MacOS에 설치되는 sleep은 양의 실수를 받기는 하지만, 한 개만 인자로 받는다. 그리고 man page에서는 portable 하지 않음을 경고한다. (Solaris, SunOS 시절쯤 과거엔 정수값만 받았었다!) apple 의 sleep 에서는 다음과 같은 트릭을 쓸 수 있다. 인자로 하나만 받는 대신, 숫자가 아닌 부분을 만나면 무시한다..
이 글을 읽기 위해서는 공용서버에서 github, bitbucket 사용하기(1)을 읽어야한다. GIT 사용자 정보 포워딩 공용장비에 로그인할 때 git 사용자 정보도 매번 설정하는 것도 귀찮을 때가 있다. 물론 자신의 계정이 있다면 .gitconfig에 설정하여 사용하게 된다. 그러나 공용계정을 사용하는 경우라면, 환경변수로 GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL 을 설정하여 사용해야한다. 환경변수 설정조차 공용 계정이므로 쉽지 않을 수 있다. 이 때는 이 두 변수를 PC에서 설정하고 ssh 접속할 때 전달 할 수 있도록 설정하면 된다. 서버에서는 받을 준비를 해야하므로 다음과 같이 설정한다. /etc/ssh/sshd_config 에서 AcceptEnv GIT_* 한 줄을 추가한다..
만약 맥 사용자라면 ssh-agent 편을 먼저 읽는 것이 좋다. Ssh 로 git repository 사용 서버에 접속 할 때 비밀번호 없이 인증하기 위해서는 공개키 방법을 사용하며, 조금 더 나아가서는 ssh-agent/ssh-add 조합으로 공개키를 사용한다. 공개키를 사용해 왔다면 ssh-agent / ssh-add 조합은 어려운 것이 아니다. github, bitbucket에 계정이 있고, 현재 사용중인 계정의 공개키를 서비스에 등록하였다면, ssh access git repository 편에서 소개한 대로 다음과 같이 접근가능하다. git repository를 제공하는 서버에 사용자 계정이 만들어지는 것이 아니다. git 계정 하나로 모든 사용자들이 접속하며, 제공하는 public key로 개..
git repository 서비스를 제공하는 bitbucket, github, gitlab 등은 ssh key를 등록하여 사용한다. 내 ssh-keygen으로 생성한 비밀키/공개키 쌍 중에서 공개키에 해당하는 ~/.ssh/id_rsa.pub 파일의 내용을 복사해서 등록하는 방식이다. 그리고 ssh 로 해당서비스를 접근할 때, 사용자 이름을 git 으로 하면, 서비스에 가입한 ID를 화면에 출력하고 바로 접속을 끊는다. 아래 예에서는 "exampleuser" 로 가입했을 때 나오는 모습이다. $ ssh git@bitbucket.org PTY allocation request failed on channel 0 logged in as exampleuser You can use git or hg to conn..
ssh-keygen 서버에 접속하여 개발하는 사람들은 하나의 서버만 접속하는 일은 별로 없다. 또한 서버를 여러 단계를 거쳐 접속하는 경우도 많다. ssh (혹은 rsh 시절부터) 기반의 접속은 다음과 같은 편리함/불편함의 역사를 가지고 기능이 추가되어 왔다. 매번 비밀번호를 입력하는 것이 귀찮다. -> 인증된 서버에서 접속하는 것을 허락해 주시오 (.rhosts, .shosts) 인증된 서버가 취약하면 같이 취약하다 -> 인증된 사용자임을 증명(공개키)하면 접속을 허락해 주시오 (ssh-keygen) 인증된 사용자의 디렉토리의 비밀키 탈취가 가능하다. -> 비밀키를 passphrase를 넣어서 생성하시오 (ssh-keygen) passphrase 를 매번 입력하는 것이 귀찮다(1번!) -> 개인키 캐시..
- Total
- Today
- Yesterday
- Tattertools plugin
- 식물
- 디버깅
- Linux
- tattertools
- VIM
- writely
- 대화
- url
- 수선화
- TCP/IP
- BlogAPI
- macosx
- perl
- 구근
- 퀴즈
- ssh
- nodejs
- 오픈소스
- 킹벤자민
- OpenID
- 클레로덴드럼
- 벤자민
- 덴드롱
- 커피
- Subversion
- MySQL
- JavaScript
- SSO
- SVN
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |