VSCodeでBitbucket(サーバー版)のリポジトリへの接続手順

CentOS7.6にインストールしたVSCodeから
Bitbucket（サーバー版）のリポジトリに接続したときの手順メモ
以下、Bitbucketはサーバー版のことを指します

#前提条件
 - gitをインストール済み（Ver2.21.0）
 - Bitbucketにアカウントあり
 - VSCode(Ver1.33.1)をインストール済み
 - SSHキーは未発行

#進め方
1. SSHキーを発行
2. SSHのコンフィグに利用キーを登録し権限変更
3. SSHのパブリックキーをBitbucketに登録
4. 利用ユーザーをgitのconfigに登録
5. VSCode上でリモートリポジトリをクローンする
6. 完了

---
#具体的手順
### 1. SSHキーを発行

既存のキーがあれば使いまわし可能。<br>ただし、使いまわしたキーが認識されない場合は新規発行
SSHキーを発行するには、```ssh-keygen```を利用
※\#はコメント用で入れましたが、実際は不要です

```terminal:terminal
$ ssh-keygen -t rsa -C "mail@host"                                   #-C の後ろの文字は、何でも良い。
Generating public/private rsa key pair.
Enter file in which to save the key (/home/your_user/.ssh/id_rsa): 　#キーの保存場所を入力 
Enter passphrase (empty for no passphrase): 　　　　　　　　　　　　　#パスワード必要なら入力、パスワード不要なら入力不要
Enter same passphrase again: 　　　　　　　　　　　　　　　　　　　　　#上でパスワード入力した場合は再入力、不要時は入力不要
Your identification has been saved in /home/your_user/.ssh/id_rsa.
Your public key has been saved in /home/your_user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ExxxxxxxxxxxxxxxxxxxxxxxxxxxE mail@host
The key's randomart image is:
+---[RSA 2048]----+
|o  o==o          |
|    (略)         | 
|       .oo  oo   |
+----[SHA256]-----+

```

### 2. SSHのconfigに利用キーを登録
#### 2-1 SSHキーの名前を変更
id_rsaとid_rsa.pubは、必要に応じて分かりやすい名前に変更してください。
下の例では、bitbucket用に名称を変更しています

```terminal:terminal
$ mv id_rsa id_bitbucket
$ mv id_rsa.pub id_bitbucket.pub
```
#### 2-2 ~.ssh/configを作成
configファイルがなければ、空のファイルを作成し名前をconfigに変更。
configファイルには、下記の記述をする。
※\#はコメント用で入れましたが、実際は不要です

```terminal:~.ssh/config
Host bitbucket                      #名称
  HostName repo.xxx.yyy.jp          #接続先のホスト。URLがhttps://abc.jpの場合はabc。https://abc.def.org の場合はabc.def
  User git                          #gitで固定
  Port 22                           #普通は22。接続先の設定次第で違うポート番号を入力する必要あり。
  IdentityFile ~/.ssh/id_bitbucket  #SSHキーの場所を指定
  TCPKeepAlive yes
  IdentitiesOnly yes
```

#### 2-3 作成したキーとconfigを権限600（所有者のみ読書可能）に変更
```terminal:terminal
$ chmod 600 id_bitbucket id_bitbucet.pub config
```

### 3. SSHのパブリックキーをBitbucketに登録
#### 3-1 パブリックキーの内容をコピー
Bitbucketにパブリックキーを登録するため、catでその中身を表示。
ターミナルに表示された内容をコピーする。

```terminal:terminal
$ cat id_bitbucket.pub
ssh-rsa AAAAB3NzaC1yc2XXXXXXXXXXXXX( 中略・すごく長い。)XXXXXXXZZZZ mail@host
```
#### 3-2 Bitbucketにログイン
アカウント管理を表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/d6d7b638-44c7-4dba-d631-03424bcbb3d8.png)

#### 3-3 パブリックキーの追加画面へ遷移
メニューの「SSHキー」を押下、「キーを追加」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/80812e66-19c0-950e-f4dd-d66f6c750ab3.png)

#### 3-4 パブリックキーを追加
3-1でコピーした、パブリックキーの内容をペーストし、キーを追加を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/3a975ed8-8545-ba98-5ef3-5da7a077f022.png)
登録された
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/a316b4be-82b0-3134-e978-b61904e99666.png)

#### 3-5 接続を確認
 - 成功例を記述したかったのですが、謎のエラー。<br>うまくいくと何かメッセージが表示されるらしい。
 - ```shell request failed on channel 0``` と出ても、後述のCloneが可能でした。
 
```terminal:成功例
$ ssh -T git@bitbucket
shell request failed on channel 0
$
```

 - 失敗例はこちら。
フィンガープリントが違うよって教えてくれる。<br>
Bitbucketに登録したパブリックキーが間違ったか、あるいは~.ssh/configの記述が間違ったか。<br>
SSHキーを使いまわしたときに表示された場合は、SSHキーを新規作成しなおしたほうが早いです

```terminal:失敗例
$ ssh -T git@bitbucket
The authenticity of host 'bitbucket.org (18.205.93.1)' can't be established.
RSA key fingerprint is SHA256:YYYXXXXXXX（略）.
RSA key fingerprint is MD5:aa:bb:cc:（略）.    
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org,18.205.93.1' (RSA) to the list of known hosts.
Authentication failed.
```

---
### 4. 利用ユーザーをgitのconfigに登録

Bitbucket接続時のユーザー名とメールアドレスを 
```git config``` で登録する

```terminal:terminal
git config --global user.email "mail@host" 
git config --global user.name "aaaaaaa"  
```

---

### 5. VSCode上でリモートリポジトリをクローンする
VSCodeを立ち上げ```$ code```
画面左メニューの丸が3つあるへんてこなイラストをクリックし
コマンドパレットからGit Cloneを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/b32f0a3f-ac69-b10e-0b40-68903a4bbb1d.png)

リポジトリのURLを入力してねと表示されるので、入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/d66e150f-951e-5e03-12a8-d71273441125.png)

URLの確認ができると、リポジトリの複製場所を聞かれるので、選択する
するとリポジトリのパスワードを聞かれるのでを入力し、Enter
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/f43748e1-1d81-a0dc-75e2-9c951c8b4f48.png)



画面右下に、複製中ですよと表示される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/0e789bad-e0cc-a7af-e587-82552b6b2dd0.png)


複製完了後、画面右下にリポジトリを開くか、ワークスペースに追加するかを聞かれる
リポジトリメインに作業するなら、リポジトリを開くを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/340dad16-5e9a-9107-ed8f-5f7ab4347cf4.png)


### 6. クローン完了！
あとはgitの流れに従い、Push、Pullなどを必要に応じて実施してください
VSCodeのgit画面の簡単な説明は↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/73bd5030-5644-b5f5-a57d-8cb82476571d.png)