AWS CLIを使用せずにCodeCommitへSSHユーザーで接続する
AWS CLIやアクセスキーID、シークレットアクセスキーなどを開発環境にセットアップせずに、CodeCommitへ接続したいケースでSSHユーザーとしての接続手順を確認しました。
目次
環境
- EC2 Amazon Linux 2023からAWS CLIをアンインストール
- IAMユーザーにはAWS管理ポリシーAWSCodeCommitPowerUserをアタッチ
Gitのインストール
1 2 |
$ sudo yum -y install git |
パブリックキーとプライベートキーの作成
1 2 |
$ ssh-keygen |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Generating public/private rsa key pair. Enter file in which to save the key (/home/ssm-user/.ssh/id_rsa): Created directory '/home/ssm-user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ssm-user/.ssh/id_rsa Your public key has been saved in /home/ssm-user/.ssh/id_rsa.pub The key fingerprint is: SHA256:AqcCpaY9jmKSkpEyhuAabOuuaaYJyNou+Q6KuVHy53I ssm-user@ip-172-31-7-236.ap-northeast-1.compute.internal The key's randomart image is: +---[RSA 3072]----+ | . | | o | |+. . . | |B+ + | |X== . . S | |B%.o . | |&=o . | |&X.oE | |^O=o. | +----[SHA256]-----+ |
- /home/ssm-user/.ssh/id_rsa
- /home/ssm-user/.ssh/id_rsa.pub
の2つが作成されました。
検証につきパスフレーズはなしで作成しました。
パブリックキーをIAMユーザーに設定
1 2 |
$ cat /home/ssm-user/.ssh/id_rsa.pub |
パブリックキーを出力してコピーしました。
IAMユーザーのセキュリティ認証情報タブのAWS CodeCommitのSSH公開キーにパブリックキーをアップロードします。
パブリックキー出力結果をコピーして貼り付けました。
設定ファイルの作成
1 2 |
$ vim ~/.ssh/config |
.sshディレクトリにconfigファイルを作成します。
公開キーに生成された公開キーIDをconfigファイルに設定します。
1 2 3 4 |
Host git-codecommit.*.amazonaws.com User APKARFDUEEVTO2DQEKVU IdentityFile ~/.ssh/id_rsa |
configファイルを保存しました。
1 2 |
$ chmod 600 ~/.ssh/config |
パーミッションを変更しました。
1 2 |
$ ssh git-codecommit.ap-northeast-1.amazonaws.com |
テストしました。
東京リージョンにテストしてみました。
1 2 3 4 5 6 7 8 |
The authenticity of host 'git-codecommit.ap-northeast-1.amazonaws.com (54.240.225.207)' can't be established. RSA key fingerprint is SHA256:Xk/WeYD/K/bnBybzhiuu4dWpBJtXPf7E30jHU7se4Ow. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'git-codecommit.ap-northeast-1.amazonaws.com' (RSA) to the list of known hosts. You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.ap-northeast-1.amazonaws.com closed by remote host. Connection to git-codecommit.ap-northeast-1.amazonaws.com closed. |
初回接続なのでfingerprintの確認があったので、yesを入力して、successfullyで成功を確認しました。
既存リポジトリをクローンしてみる
1 2 |
$ git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/2048 |
既存のリポジトリをクローンしてみました。
1 2 3 4 5 |
Cloning into '2048'... remote: Counting objects: 772, done. Receiving objects: 100% (772/772), 454.57 KiB | 8.74 MiB/s, done. Resolving deltas: 100% (429/429), done. |
無事完了しました。
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
【PR】 「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第2版」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Amazon Quantum Ledger Database(QLDB)でサンプル台帳の作成と検証
Quantum Ledger Database(QLDB)を触ったことなかったの …
-
-
Lambda関数からAWS Systems Managerパラメータストアの値を取得して更新する
Lambda関数で自分自身の環境変数を更新する だと、Lambdaのエイリアスと …
-
-
ENAが有効なEC2インスタンスの帯域幅をiperf3で確認してみた
同じ Amazon VPC 内で Amazon EC2 Linux インスタンス …
-
-
ハンズオン目的アカウントに設定しているSCPポリシー
AWS Organizationsでハンズオン目的のアカウントに設定しているSC …
-
-
EC2 Global Viewで不要なインスタンスを見つけて4つほど終了しました
EC2 Global Viewという機能がリリースされました。 EC2コンソール …
-
-
Amazon ECSサービスでAWS App Meshを使用
AWS App MeshユーザーガイドのAWS App Mesh とAmazon …
-
-
S3インベントリ設定でインベントリファイルの作成を設定
インベントリレポートファイルはオブジェクトの一覧情報です。 日次、週次で定期作成 …
-
-
AtomエディタでEC2のファイルを直接編集する
Webページを編集していてEC2のファイルをvimエディタでさわったりしています …
-
-
EFSをEC2(Amazon Linux 2)からマウントする
Amazon Elastic File Systemが東京リージョンに来たことも …
-
-
AWSアカウント内特定リージョン内のDynamoDBテーブルを全削除するLambda(Python)
やりたいこと タイトル通りですが、特定アカウントの特定リージョン内のDynamo …