【GitHub】Deploy keys를 사용해 ssh로 pull할 때까지
5469 단어 GitHubssh-keygen리눅스SSHGit
개요
github 리포지토리의 Deploy keys에 공개 키를 등록하고 AWS EC2 (Amazon Linux2)에서 ssh로 풀링하는 단계
절차
1. 공개키와 비공개키를 작성한다
서버에 (ec2-user로) ssh 연결하고 git pull
원하는 사용자로 공개 키와 개인 키를 만듭니다.
콘솔// 今回はtamorieeeenというユーザーでgit pullしたい
$ sudo su - tamorieeeen
// .sshディレクトリを作成(無い場合)
$ mkdir .ssh
$ ls -la | grep ssh
drwxrwxr-x 2 tamorieeeen tamorieeeen 6 Aug 31 14:38 .ssh
// ディレクトリの権限が775になってると思うので700に変更
$ chmod 700 .ssh/
$ cd .ssh
// id_rsa_githubという名前で鍵を作成
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tamorieeeen/.ssh/id_rsa): id_rsa_github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_github.
Your public key has been saved in id_rsa_github.pub.
$ ls -l
-rw------- 1 tamorieeeen tamorieeeen 1675 Aug 31 14:42 id_rsa_github
-rw-r--r-- 1 tamorieeeen tamorieeeen 433 Aug 31 14:42 id_rsa_github.pub
2. github에 공개 키 등록
등록하고 싶은 리포지토리의 Settings > Deploy keys > Add deploy key 에서 미리 만든 공개키를 등록한다
공개키는 less로 보고 복사하면 OK
콘솔$ less id_rsa_github.pub
[email protected]
Title에 알기 쉬운 이름을 붙이고, Key에 조금 복사한 공개키를 붙이고 Add key
를 누르면 완료.
※push도 사용하는 경우는 Add key
위의 Allow write access
에 체크를 넣는다
3. ssh_config 설정
비공개키를 id_rsa
이외의 파일명으로 한 경우는 config를 설정한다.
( id_rsa
의 경우는 디폴트로 보러 가기 때문에 설정 불필요… 해야 한다)
콘솔$ pwd
/home/tamorieeeen/.ssh
// configに設定を追記
$ vi config
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa_github
User git
$ ls -l
-rw-rw-r-- 1 tamorieeeen tamorieeeen 81 Aug 31 15:16 config
-rw------- 1 tamorieeeen tamorieeeen 1675 Aug 31 14:42 id_rsa_github
-rw-r--r-- 1 tamorieeeen tamorieeeen 433 Aug 31 14:42 id_rsa_github.pub
// configの権限を600に変更
$ chmod 600 config
4. 연결 확인
아래가 출력되면 ssh 연결이 완료됩니다.
※ .ssh/config
의 Host로 설정한 명칭과 @
이후는 일치시킬 것
(여기서 Permission denied (publickey).
에서 빠졌다)
콘솔$ ssh -T [email protected]
Hi tamorieeeen/repository_name! You've successfully authenticated, but GitHub does not provide shell access.
5. https 연결에서 ssh 연결로 변경
신규로 clone하는 경우는 그대로 github의 Clone with SSH
의 URL로 clone 해 주면 좋지만, 이번은 벌써 https로 clone 끝난 리포지토리이므로 접속 방식을 https에서 ssh로 변경한다.
콘솔// clone済のリポジトリに移動
$ pwd
/home/tamorieeeen/repository
// 現在のremoteリポジトリをチェック
$ git remote -v
origin https://github.com/tamorieeeen/repository.git (fetch)
origin https://github.com/tamorieeeen/repository.git (push)
// remoteリポジトリのURLをsshのものに変更
$ git remote set-url origin [email protected]:tamorieeeen/repository.git
// 変更されてるかチェック
$ git remote -v
origin [email protected]:tamorieeeen/repository.git (fetch)
origin [email protected]:tamorieeeen/repository.git (push)
// pullしてみる
$ git pull origin develop
From github.com:tamorieeeen/repository
* branch develop -> FETCH_HEAD
Already up to date.
무사히 pull 할 수 있었으므로 완료.
참고
1. 공개키와 비공개키를 작성한다
서버에 (ec2-user로) ssh 연결하고
git pull
원하는 사용자로 공개 키와 개인 키를 만듭니다.콘솔
// 今回はtamorieeeenというユーザーでgit pullしたい
$ sudo su - tamorieeeen
// .sshディレクトリを作成(無い場合)
$ mkdir .ssh
$ ls -la | grep ssh
drwxrwxr-x 2 tamorieeeen tamorieeeen 6 Aug 31 14:38 .ssh
// ディレクトリの権限が775になってると思うので700に変更
$ chmod 700 .ssh/
$ cd .ssh
// id_rsa_githubという名前で鍵を作成
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tamorieeeen/.ssh/id_rsa): id_rsa_github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_github.
Your public key has been saved in id_rsa_github.pub.
$ ls -l
-rw------- 1 tamorieeeen tamorieeeen 1675 Aug 31 14:42 id_rsa_github
-rw-r--r-- 1 tamorieeeen tamorieeeen 433 Aug 31 14:42 id_rsa_github.pub
2. github에 공개 키 등록
등록하고 싶은 리포지토리의 Settings > Deploy keys > Add deploy key 에서 미리 만든 공개키를 등록한다
공개키는 less로 보고 복사하면 OK
콘솔
$ less id_rsa_github.pub
[email protected]
Title에 알기 쉬운 이름을 붙이고, Key에 조금 복사한 공개키를 붙이고
Add key
를 누르면 완료.※push도 사용하는 경우는
Add key
위의 Allow write access
에 체크를 넣는다3. ssh_config 설정
비공개키를
id_rsa
이외의 파일명으로 한 경우는 config를 설정한다.(
id_rsa
의 경우는 디폴트로 보러 가기 때문에 설정 불필요… 해야 한다)콘솔
$ pwd
/home/tamorieeeen/.ssh
// configに設定を追記
$ vi config
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa_github
User git
$ ls -l
-rw-rw-r-- 1 tamorieeeen tamorieeeen 81 Aug 31 15:16 config
-rw------- 1 tamorieeeen tamorieeeen 1675 Aug 31 14:42 id_rsa_github
-rw-r--r-- 1 tamorieeeen tamorieeeen 433 Aug 31 14:42 id_rsa_github.pub
// configの権限を600に変更
$ chmod 600 config
4. 연결 확인
아래가 출력되면 ssh 연결이 완료됩니다.
※
.ssh/config
의 Host로 설정한 명칭과 @
이후는 일치시킬 것(여기서
Permission denied (publickey).
에서 빠졌다)콘솔
$ ssh -T [email protected]
Hi tamorieeeen/repository_name! You've successfully authenticated, but GitHub does not provide shell access.
5. https 연결에서 ssh 연결로 변경
신규로 clone하는 경우는 그대로 github의
Clone with SSH
의 URL로 clone 해 주면 좋지만, 이번은 벌써 https로 clone 끝난 리포지토리이므로 접속 방식을 https에서 ssh로 변경한다.콘솔
// clone済のリポジトリに移動
$ pwd
/home/tamorieeeen/repository
// 現在のremoteリポジトリをチェック
$ git remote -v
origin https://github.com/tamorieeeen/repository.git (fetch)
origin https://github.com/tamorieeeen/repository.git (push)
// remoteリポジトリのURLをsshのものに変更
$ git remote set-url origin [email protected]:tamorieeeen/repository.git
// 変更されてるかチェック
$ git remote -v
origin [email protected]:tamorieeeen/repository.git (fetch)
origin [email protected]:tamorieeeen/repository.git (push)
// pullしてみる
$ git pull origin develop
From github.com:tamorieeeen/repository
* branch develop -> FETCH_HEAD
Already up to date.
무사히 pull 할 수 있었으므로 완료.
참고
Reference
이 문제에 관하여(【GitHub】Deploy keys를 사용해 ssh로 pull할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tamorieeeen/items/c24f8285448b607b12dd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)