한번 설정하면 거의 다시 사용할일 없는 close 작업입니다.
윈도우 환경에서만 사용하다가 mac 환경에서 멘붕을 겪고 잊어버리기 전에 정리합니다. (리눅스도 아마 같을거에요)
1. 기본 명령어로 clone 하기
1.1 git -c clone https://hostname/repository/project.git
1.2 아이디 비밀번호 물어봄 -> 아이디 비밀번호 입력하면 clone 작업됨
Cloning into 'project'... Username for 'https://hostname': Password for 'https://hostname': |
1.3 만일 인증서가 어쩌고 하면서 에러가 뜬다면? git 서버에 정상적인 인증서를 설치하지 않은 경우입니다.
Cloning into 'project'... fatal: unable to access 'https://hostname/project.git/': SSL certificate problem: self signed certificate |
self-signed 인증서를 설치한 경우가 대부분인데 이때는 MITM공격이 없다고 확신하고.git -c http.sslVerify=false clone https://hostname/repository/project.git 옵션으로 인증서 오류를 무시합니다.
2. ssh agent 으로 close 하기. 자신의 ssh 공개키를 git 서버에 등록했다고 가정합니다.
1.1 git -c clone git@hostname:repository/project.git
1.2 만일
ssh-agent 에 등록된 개인키 리스트 살펴보기
ssh-add -l
ssh 개인키를 ssh-agent 에 등록하기( 처음 혹은 개인키에 비밀번호가 걸려 있을경우 항상 수행 )
1. 개인키를 적당한 위치에 복사합니다. 보통 user/.ssh/ 에 위치합니다.
2. ssh-add ~/.ssh/personal_private_key.ppk
2.1 만일 개인키에 비밀번호가 지정되어 있으면 비밀번호를 입력합니다. 비밀번호가 틀리지 않았다면 성공적으로 키가 등록됩니다.
Enter passphrase for /Users/user1/.ssh/personal_private_openssh.ppk: Identity added: /Users/user1/.ssh/personal_private_openssh.ppk (/Users/hgchoi/.ssh/personal_private_openssh.ppk) |
3. 만일 "Permissions 0XXX for" 라는 오류가 뜨면 해당 키를 다른 사람이 접근하지 못하도록 퍼미션을 설정해야합니다.
3.1 chmod 700 personal_private_key.ppk 으로 퍼미션을 변경합니다.
4. 만일 "Error loading key ".ssh/personal_private_key.ppk": invalid format" 라는 메세지가 뜬다면 OpenSSH 기본 키 포맷이 아닙니다.
4.1 PuttyKeyGen 으로 해당 키를 로딩합니다.
4.2 메뉴에서 "Conversions" -> "Export OpenSSH key" 으로 private key 를 덮어쓰거나 새로 저장합니다.
4.3 2번으로 돌아갑니다.
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 오류 해결법
Cloning into 'project'... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:7XawXdUiuwejALWs5bR7JfcXE6IC/d0wwesdKNJJDKDHOM. Please contact your system administrator. Add correct host key in /Users/user1/.ssh/known_hosts to get rid of this message. Offending RSA key in /Users/user1/.ssh/known_hosts:1 RSA host key for git1.nexon.net has changed and you have requested strict checking. Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights |
known_hosts 파일에 이미 git repository 서버의 public sign 이 저장되어 있는데 그 사이에 서버에서 디지털인증을 변경하는 경우 입니다. 아주 희귀하지만 겪게 되었는데요. 이때는 간단하게 known_hosts 파일에서 해당 서버의 목록을 삭제합니다. 그리고 다시 clone 을 하게 되면 서버인증서를 보여주면서 계속 할건지 묻습니다.
Cloning into 'project'... The authenticity of host 'hostname (??.??.??.??)' can't be established. ECDSA key fingerprint is SHA256:GqKgaoowjfsduzHbG5kZfMv98QawefdxIQjgqnEyX80. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hostname,??.??.??.??' (ECDSA) to the list of known hosts. remote: Enumerating objects: 2689, done. remote: Counting objects: 100% (2689/2689), done. remote: Compressing objects: 100% (1651/1651), done. remote: Total 2689 (delta 1218), reused 2239 (delta 906) Receiving objects: 100% (2689/2689), 153.58 MiB | 4.61 MiB/s, done. Resolving deltas: 100% (1218/1218), done.
Checking out files: 100% (1882/1882), done. |
이렇게 yes를 누르면 known_hosts 에 서버의 인증서가 기록 됩니다.