2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AzureDevOpsにSSH公開鍵を登録して、GitRepositoryにSSH接続する

Posted at

はじめに

自分はGitRepositoryにSSHで接続する派です。
Windowsマシンを使ってた頃、複数の接続先を持ちすぎたのか、頻繁にPWを聞かれてうんざりしてからSSH派になりました。

AzureDevOpsのSSH鍵有効期限は「1年」です。(2023/02/10時点)
毎年やらなきゃいけないことをその度に調べ直すのは嫌なので、メモしておきます。

なお、AzureDevOpsへの登録方法を記述しますが、GitHubでもノリは同じです。

環境

macOS 13.1

公開鍵・秘密鍵の作成

sshフォルダに移動

$ cd ~/.ssh

鍵ペアの生成

$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/[userName]/.ssh/id_rsa): key_azure_devops
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in key_azure_devops
Your public key has been saved in key_azure_devops.pub

Enter file in which to save the key (/Users/[userName]/.ssh/id_rsa):で鍵の名前を、
Enter passphrase (empty for no passphrase):でパスフレーズを指定できます。

鍵が作成されたかの確認

$ ls -l
  • key_azure_devops
  • key_azure_devops.pub

の2ファイルが確認できると思います。
.pub拡張子が「公開鍵」となり、拡張子なしファイルが「秘密鍵」となります。
公開鍵をAzureDevOpsに登録することになりますが、秘密鍵は自分以外に知られてはなりません。

AzureDevOpsに鍵を登録する

※記事で紹介するAzureDevOpsのUIは、2023/02/10時点のものです。

SSH公開鍵管理ページにアクセス

公開鍵の登録

「+ New Key」をクリック。

Name: 公開鍵やマシンの名前
Public Key Data: 公開鍵データ

公開鍵の中身をコピーする時、マウスを使ったドラッグだとミスの元なので、下記コマンドを使用するようにしましょう。

mac

$ pbcopy < ~/.ssh/key_azure_devops.pub

windows

$ clip < ~/.ssh/key_azure_devops.pub

SSH configファイルでどの鍵を使用するか指定

~/.ssh/configを開き、下記を追記します。
IdentityFileには、自分で作成した鍵のパスを記述してください。

~/.ssh/config
# Azure DevOps
Host ssh.dev.azure.com
  HostName ssh.dev.azure.com
  IdentityFile ~/.ssh/key_azure_devops
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

Host名を変えて、複数のAzureDevOpsアカウントを使い分ける

任意のHost名と、個別のIdentityFileを指定することで、複数のAzureDevOpsアカウント(GitHubも)があっても簡単にSSH接続情報を使い分けられます。

~/.ssh/config
# Azure DevOps
Host work_devops
  HostName ssh.dev.azure.com
  IdentityFile ~/.ssh/key_azure_devops
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

# private Azure DevOps
Host private_devops
  HostName ssh.dev.azure.com
  IdentityFile ~/.ssh/key_private_azure_devops
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

ただし、cloneしてくる時やremote addする時など、デフォルトのコマンドラインではなく、自分で定義したHost名を使用する必要があります。

デフォルト
git clone git@ssh.dev.azure.com:v3/[Organization]/[Project]/[RepositoryName]

変更後
git clone git@[Host名]:v3/[Organization]/[Project]/[RepositoryName]

上記のprivate_devopsを使うなら、
git clone git@private_devops:v3/[Organization]/[Project]/[RepositoryName]となります。

参照

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?