Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

秘密鍵はあるのにSSH接続できなくて困った話

More than 1 year has passed since last update.

過去にAWS CodeCommitからSSHでリポジトリをクローンする際に自分の端末からSSH接続ができなくて困ったことがあったのですが、その理由があまりにもばかばかしかったので同じ過ちを犯さないよう残しておきます。

事象

途中から取引先のプロジェクトにアサインされることになったので、CodeCommitのリポジトリをSSHでクローンするよう言われたので秘密鍵をもらい、ポートがオープンになっていることを確認しうえでSSH接続をしようとすると

Permission denied (publickey)

が表示されてしまった。

原因と対応

SSHに関して初心者だったので訳が分からず色々調べてみたが、どうやらもらった秘密鍵に対して公開鍵が用意されていないのが原因でした。SSH接続するには公開鍵と秘密鍵が必要で、秘密鍵をクライアント端末に、公開鍵をサーバーに持たせなければいけません。
職場から秘密鍵をもらったのでてっきり公開鍵もサーバーに渡されているだろうと思っていたのだがそんなことはありませんでした。
ということでもらった秘密鍵をもとに公開鍵を作成し、作成した公開鍵をサーバーにアップロードすることで解決しました
備忘録として手順を記載しときます

・.sshディレクトリに秘密鍵を配備する

# mv 【秘密鍵ファイル名】 ~/.ssh

・秘密鍵から公開鍵を作る

# ssh-keygen -y -f 【秘密鍵ファイル名】> ~/.ssh/【秘密鍵ファイル名】.pub

・公開鍵をIAMユーザーの認証情報→SSHパブリックキーのアップロードよりアップロードする

・.sshディレクトリにファイル「config」を作成し、configに以下を記述

Host git-codecommit.*.amazonaws.com
  User 【IAMユーザーに記載されているSSHキーID】
  IdentityFile 【秘密鍵のパス】(~/.ssh/【秘密鍵ファイル名】)

・configおよび秘密鍵の権限を変更する

# chmod 600 config, chmod 600 【秘密鍵ファイル名】

…これがないとPermissions 0755 for '/.ssh/glocalist_prod' are too open.と表示される

・.sshディレクトリの権限を変更する

# chmod 700 .ssh

・接続テストを行う

# ssh git-codecommit.ap-northeast-1.amazonaws.com

…成功すればYou have successfully authenticated over SSHが表示される
・gitコマンドよりCodeCommit上にあるプロジェクトをクローンする

# git clone 【クローン元のURL】 【クローン先のディレクトリ】

こうしてめでたくリポジトリをクローンすることができました。

Hiroro0970
若手のフリーランスエンジニア。いわゆるSE。 プログラミング以外のことに関する情報は全て自身にブログで公開中。
http://dev-mgr.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away