SSH認可
SSHを使用してリポジトリをクローニングする方法について学習します。
SSHキーを使用してリポジトリをクローニングするには、SSHキー・ペアが必要です。DevOpsソース・コード管理(SCM)に適用可能な公開キーのSSHフィンガープリントおよび対応するリージョンのリストは、SSHフィンガープリントを参照してください。ユーザーはIAMユーザーまたはフェデレーテッド・ユーザーです。IAMユーザーはドメインの一部になることができます。アイデンティティ・ドメインは、ユーザーおよびロールを管理するためのコンテナです。
SSH認証の設定
- SSHキー・ペアを生成します。OpenSSHキー・ペアまたはOCI API署名キーを使用できます。 ノート
SSHキー・ペアがすでにある場合は、同じものを使用できます。デフォルトでは、SSHキーはシステムの~/.ssh
ディレクトリに格納されます。SSH鍵ペアを生成するには、次の手順に従います。
- ターミナル・ウィンドウを開きます。
-
次のコマンドを入力します。
ssh-keygen -t rsa -C "<user.alias>@"
- プロンプトが表示されたら、デフォルト値を受け入れます。
- このコマンドにより、SSHで使用される3072ビットのRSAキーが作成されます。
- セキュリティのために要求された場合は、秘密キーのパスフレーズを指定できます。
- このコマンドにより、SSH認証に必要な2つのキーとして秘密キー(id_rsa)と公開キー(id_rsa.pub)が生成されます。秘密キーはセキュアに保持し、共有しないでください。
- 公開キー・ファイルの内容をコピーします。 OpenSSH形式のキーを使用している場合は、次のコマンドを使用します:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pkcs8 | pbcopy
OCI API署名キーを使用している場合は、次のコマンドを使用します:cat ~/.oci/oci_api_key_public.pem | pbcopy
- 公開キーをOCIにアップロードし、IAMユーザーに関連付けます。次のステップに従います:
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「ユーザー」をクリックします。テナント内のユーザーのリストが表示されます。
- Gitサービス認証に使用するユーザーを選択します。
- 左側のメニューの「リソース」にある「APIキー」をクリックします。
- 「APIキーの追加」ボタンをクリックし、「公開キーの貼付け」オプションを選択して、公開キーのコンテンツを貼り付けます。
- 「追加」ボタンをクリックします。
Git操作の設定
OpenSSH構成ファイルでGitユーザー名を設定するか、SSH URLにGitユーザー名を埋め込むことができます。
- OpenSSH構成ファイルでGitユーザー名を設定するには、次のステップに従います。
~/.ssh/config
ファイルがデフォルトの場所に存在するかどうかを確認します。open ~/.ssh/config
- このファイルが存在しない場合は、ファイルを作成します。
touch ~/.ssh/config
- SSH構成ファイル
~/.ssh/config
を編集して、git clone
操作に使用するユーザーおよびキーを指定する必要があります。構成ファイルのホスト・エントリのフォーマットは:Host <CodeRepositoryHost> User <userName>@<tenancyName> IdentityFile <PathToYourSSHPrivateKey>
ドメインのIAMユーザー部分のファイル形式は次のとおりです。Host <CodeRepositoryHost> User <domainName>/<userName>@<tenancyName> IdentityFile <PathToYourSSHPrivateKey>
SSHユーザーは、ログイン・ユーザー名とパスワードの組合せです。たとえば、フェデレーテッド・ユーザーを使用している場合、コード・リポジトリのGit用SSHユーザーはFederation/userName@tenancyName
です。このユーザー文字列で:Federation
はオプションで、フェデレーテッド・アイデンティティ・プロバイダです。userName
は、OCIコンソールにサインインするユーザーです。tenancyName
はテナンシの名前です。これはOCIコンソールで確認できます。
oracleidentitycloudservice/the-product-manager-user@my-tenancy
SSHユーザー文字列は、URLエンコードまたはエスケープする必要はありません。たとえば、アッシュバーン・リージョンのコード・リポジトリのホスト構成エントリは:Host devops.scmservice.us-ashburn-1.oci.oraclecloud.com User the-product-manager-user@my-tenancy IdentityFile ~/.ssh/id_rsa
すべてのOCIリージョンで、ホストにワイルドカードを使用できます(例:
Host devops.scmservice.*.oci.oraclecloud.com
)。
-
SSH URLでGitユーザー名を設定するには、次のステップに従います。
- SSH URLにGitユーザー名を追加します。
ssh://<userName>@<tenancyName>@<sshUrl>
ドメイン内のユーザーのSSH URL:ssh://<domainName>/<userName>@<tenancyName>@<sshUrl>
- SSH-agentにSSH秘密キーを追加し、そのパスフレーズをキーチェーンに格納します。
ssh-add -K ~/.ssh/id_rsa
- SSH URLにGitユーザー名を追加します。
リポジトリのクローニング
- ローカル・マシンのコマンドラインで、作業ディレクトリの場所を、リポジトリをクローニングする場所に変更します。
- リポジトリをクローニングするには、クラウド・コンソールからコピーしたSSH URLを指定して
git clone
コマンドを実行します。例:
git clone ssh://devops.scmservice.us-ashburn-1.oci.oraclecloud.com/namespaces/MY-TENANCY/projects/PROJECT-NAME/repositories/REPO-NAME