logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

Bitbucket에서 SSH 키 등록하고 사용하는 방법 (맥/리눅스)

by lizard2019 posted Jun 22, 2023
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Attachment
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Attachment

Bitbucket Private Repository를 ssh key를 이용하여 git clone 해오기 bitbucket의 private 저장소를 로컬로 받아오려면 두가지 방법이 있습니다.

ssh 프로토콜를 이용하여 clone

http 프로토콜을 이용하여 clone

 

예를 들어, ssh 프로토콜을 이용한 bitbucket의 ssh-key-add 리포지토리의 복제는

git clone git@bitbucket.org:myid/ssh-key-add.git

와 같을 명령어를 사용합니다.

 

그리고 http 프로토콜을 이용한 bitbucket의 ssh-key-add 리포지토리의 복제는

git clone https://myid@bitbucket.org/myid/ssh-key-add.git

와 같이 사용하지요.

 

이때 http 프로토콜을 이용한 방법에서는 bitbucket 유저의 비밀번호를 입력을 추가적으로 받을 수도 있고,

git clone https://myid:비밀번호@bitbucket.org/myid/ssh-key-add.git

이런 식으로 git clone https://사용자이름:비밀번호@저장소위치 로 한번에 clone을 할 수 있습니다.

그런데 ansible과 같은 프로비저닝툴을 이용하여 private repository를 받아오려면, http 프로토콜을 이용한 clone은 좋지 않은 방법이라고 생각합니다. (자동 배포를 위한 ansible playbook에 아이디랑 비밀번호를 하드코딩해야하니.)

그래서 ssh를 이용하여 bitbucket의 private 저장소를 clone해오는 것을 해보고자 합니다.

 

현재 아래와 같이 ssh-key-add라는 private repo가 있고 이걸 local에 ssh를 통해서 받아오고자 한다.

 

로컬의 임의의 위치에

git clone git@bitbucket.org:myid/ssh-key-add.git

를 쳐보지만,

Cloning into 'ssh-key-add'...
conq: repository access denied.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

라는 메시지와 함께 git clone 명령이 에러가 나게 됩니다. 왜냐하면 ssh key가 없기 때문입니다.

ssh를 통해 bitbucket 저장소를 받아오려면 로컬 머신에 ssh public key, private key가 존재해야 하고,

bitbucket 사이트에 공개키가 등록이 되어야합니다.

 

SSH key 생성하기

 

먼저 ssh key를 생성해봅시다.

ssh-keygen이라는 프로그램을 통해서 리눅스나 맥의 ssh키를 생성할 수 있습니다.

$ ssh-keygen -t rsa

여기서 옵션 t는 생성할 키의 type을 정하는 것이고 rsa를 설정하겠다는 뜻입니다. 이 커맨드를 입력하고 나면

Enter file in which to save the key (/Users/eminentstar/.ssh/id_rsa):

라는 key를 어디에 저장할 것인가 에대한 경로 및 파일 이름을 입력하라고 나옵니다.

ssh키는 홈디렉토리의 .ssh에 저장하며, 아래의 사진에서는 홈디렉토리/.ssh/bitbucket_add_ssh 라는 키를 생성하려고 합니다.

 

그다음에는

Enter passphrase: 

라는 것이 나오는데, 이 passphrase는 private key를 암호화하는데 사용되는 암호라고 하는데 일단 passphrase는 그냥 엔터를 칩니다. 그러면 private key(bitbucket_add_ssh) 와 public key(bitbucket_add_ssh.pub)가 .ssh에 생성된 것을 확인가능합니다. Bitbucket에 SSH public key 등록하기 등록을 위해선 공개키의 내용을 복사해야하는데, 아래의 커맨드로 복사를 합니다.

$ cat ~/.ssh/bitbucket_add_ssh.pub | pbcopy

그리고 bitbucket의 해당 리포지토리로 가서 Settings > Access Keys 로 가서 Add Key 버튼을 클릭합니다.

그리고 방금 cat / pbcopy로 복사한 공개키 내용을 복사하고, Label은 편한대로 입력하면 됩니다.

스크린샷 2023-06-22 오후 5.31.02.png

 

 

마지막으로 ssh-agent가 켜져 있는지 확인하고

$ ps -e | grep ssh-agent

ssh-agent가 켜져있다면

  603 ??         0:00.06 /usr/bin/ssh-agent -l
 

와 같은 출력이 뜰 것입니다. ssh-agent가 켜져있지 않다면

$ ssh-agent /bin/bash
 

로 ssh-agent를 실행합니다. 그리고 ssh-add를 통해 identity file(private key; 여기선 bitbucket_add_ssh)를 추가합니다.

$ ssh-add ~/.ssh/bitbucket_add_ssh

그 후에는

$ ssh-add -l

을 통해 키의 fingerprint가 출력되는것을 확인해야만 한다. 이제 git clone을 해보면 정상적으로 클론이 되는 것을 확인 할 수 있습니다.

 

TAG •

List of Articles
No. Subject Author Date Views
104 TCP/IP State Transition - TCP 스택 포팅 시 참조 file digipine 2017.11.02 195239
103 언어 IDE 별로 git ignore 파일을 자동으로 만들어 주는 사이트 엉뚱도마뱀 2018.12.17 122653
102 What is Android Repo? and Manual, Download file digipine 2017.11.02 99671
101 [Linux] ubuntu 16.04에 QT Creator 설치하기 digipine 2017.11.02 24347
100 [Swift, MacOS] 맥 한글 파일명이 윈도우에서 자소 분리되는 현상 해결, NFD, NFC 엉뚱도마뱀 2018.12.11 20080
99 Linux init.d 에서 등록하기. 부팅 시 자동실행 설정 digipine 2017.11.03 12633
98 FFT (Fast Fourier Transform) 고속 푸리에 변환 예제 소스 digipine 2017.10.29 12548
97 Photoshop CC 2018 한글 영문 변환 언어팩, 포토샵 언어변경 file 엉뚱도마뱀 2018.07.04 8531
96 Phabricator 설치 가이드 우분투 16.04 기준 digipine 2017.11.02 6193
95 ATmega8 MCU 간의 TWI 기능을 이용한 I2C 통신 digipine 2017.11.02 5998
94 WinPCap과 Ethereal, Wireshark 을 이용한 스니핑(Sniffing) digipine 2017.10.29 5428
93 공짜 무료 C/C++ 컴파일러들 file digipine 2017.10.28 4378
92 난수발생기 개론 엉뚱도마뱀 2017.11.22 4319
91 비밀번호 해쉬에 Salt(소금) 첨가하기 file 엉뚱도마뱀 2017.11.23 4274
90 [iOS] Bluetooth로 App을 백그라운드 모드로 실행는 방법 lizard2019 2020.02.11 3526
89 OpenAL 사용법 정리 1 digipine 2017.11.01 3398
88 [Linux, OSX] pfctl - Packet FIlter Control 사용법 digipine 2017.11.02 3189
87 Xcode 없이 맥에 '명령어 라인 도구(Command Line Tools)'를 설치하는 방법 엉뚱도마뱀 2018.12.26 2859
86 WIN CE, GPS - NMEA protocol - GPS Virtual Driver digipine 2017.10.28 2830
85 초고속망 통신사 DNS 서버 주소 모음 - DNS 설정 digipine 2017.11.03 2633
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6