質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

3008閲覧

踏み台サーバーを経由してプライベートサブネット内のEC2にSSH接続する。

yayayayayaya

総合スコア2

公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/07/15 10:31

編集2021/07/16 06:37

某動画を見ながら、パブリックサブネット内のEC2インスタンスを踏み台にしてプライベートサブネット内のEC2インスタンスにSSH接続しようとしています。

実際にやったこと
サブネット、インスタンス等の作成
パブリックインスタンス内のEC2にSSH接続した後、 nano myprivatekey.pem を実行
中にインスタンス作成時に使用したプライベートキーの中身を貼り付け
chmod 400 myprivatekey.pem を実行し作成したpemファイルのアクセス権限を変更
ssh ec2-user@プライベートipアドレス -i myprivatekey.pem 実行

結果
Warning: Permanently added 'プライベートipアドレス' (ECDSA) to the list of known hosts.
Enter passphrase for key 'myprivatekey.pem':
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
登録した覚えがないのにパスフレーズを求められてしまった。

試したこと
秘密鍵にパスフレーズが登録されているか確認
ssh-keygen -yf ~/.ssh/myprivatekey.pem 実行     → 公開鍵が表示されました。
アクセス権限の再設定
EC2インスタンスを一度削除し再度作成、その際にアクセスキーも作り直しましたが解決には至りませんでした。

となってしまい、手詰まりになってしまいました。
登録していないはずのパスフレーズを求められているという現象が謎だなぁと思う次第です。
どなたかアドバイスいただけると幸いです。

追記
PC上で ssh-keygen -yf /Users/Username/.ssh/myprivatekey.pem を実行     → 公開鍵が表示されました。
ec2インスタンス上で ssh-keygen -yf myprivatekey.pem を実行    パスフレーズを求められました。
なんでですかぁ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2021/07/15 11:18

ssh-keygen -yf ~/.ssh/myprivatekey.pem と ssh-keygen -yf myprivatekey.pem では 参照している鍵ファイルが違いませんか?後者のコマンドはどのパスで実行しましたか? また、プライベートサブネット内のEC2インスタンスにどうやってそのmyprivatekey.pemに対応する公開鍵を登録しているのでしょう。 myprivatekey.pemはEC2作成時に登録済みということですか? 元となるmyprivatekey.pem自体はどのように作成したんでしょうか。
TaichiYanagiya

2021/07/15 13:24

お手元の PC で ssh-agent が起動しているのではないでしょうか。 "ssh-add -l" で ssh-agent が管理している秘密鍵のリストを表示できます。
yayayayayaya

2021/07/15 14:22

わかりにくい文章で申し訳ありません。 後者はSSH接続したEC2インスタンス上で実行しています。 パスで言うと/home/ec2-user/myprivatekey.pemです。 PC上の/Users/Username/.ssh/myprivatekey.pemの中身をcatで表示、コピー EC2インスタンス上の/home/ec2-user/上で nano myprivatekey.pem を実行、ペースト と作業したため、参照している鍵は一緒だと認識しています。(ここが違うんでしょうか) myprivatekey.pemに関しては過去にEC2インスタンスを作った時に使ったものをそのまま流用しています。EC2作成時に登録済みです。(パブリックサブネット上に作ったEC2も同じ鍵を使っています。)
yayayayayaya

2021/07/15 15:10

ssh-agentを確認したところ他の秘密鍵が登録されていたので削除しました。 しかし、問題は解決に至りませんでした。
TaichiYanagiya

2021/07/16 00:14

いや、パスフレーズ入力の違いついて、PC で ssh-agent が起動していればパスフレーズ入力不要、EC2インスタンスでは ssh-agent が起動していないのでパスフレーズ入力必要、という意図です。 ちなみに、EC2インスタンスでパスフレーズを入力すればプライベート側EC2インスタンスに SSH ログインできるのですよね?
yayayayayaya

2021/07/16 06:34

AWSマネージメントコンソールから作成したキーペアの秘密鍵には、パスフレーズが設定されていないと認識しています。(ここが違うのでしょうか?) 確認のためPC上でssh-keygen -yf /Users/Username/.ssh/myprivatekey.pem を実行し パスフレーズを求められずに公開鍵を作成することができたので、設定されていないと認識しました。 つまり私自身にパスフレーズの心当たりがないため、SSHログインできません。 要領を得ない回答で申し訳ありません、よろしくお願いいたします。
TaichiYanagiya

2021/07/16 06:46

> AWSマネージメントコンソールから作成したキーペアの秘密鍵には、パスフレーズが設定されていないと認識しています。 確かにそうでしたね。 じゃあ、EC2インスタンスで「Enter passphrase for key 'myprivatekey.pem': 」となるのは鍵自体が違う? それは置いておいて、PC で ssh-agent が起動しているなら、"ssh -A" (ForwardAgent) でパブリックEC2 にログインすれば、PC にある秘密鍵でプライベートEC2 にログインできます。 また、ProxyCommand を利用して、PC から(パブリックEC2 の ssh tunnel 経由で)プライベートEC2 に直接ログインする方法もあります。 どちらも、パブリックEC2 に秘密鍵を置く必要はありません。
yu_1985

2021/07/16 08:03

ちなみにですが、エディタでコピペではなくscpなどを使って鍵をアップロードしてそれを使ったらどうなりますか? また、鍵を配置する以外に何か操作をしましたか?
yayayayayaya

2021/07/16 13:17

TaichiYanagiyaさん PC上でssh-addの中身を一度ssh-add -Dで空にしてから ssh-add /Users/Username/.ssh/myprivatekey.pem を実行し秘密鍵を追加した後 ssh -Aでログインしたところ、無事ログインすることができました。 yu_1985さん PC上でscp ~/.ssh/myprivatekey.pem ec2-user@パブリックIPアドレス:/home/ec2-userを実行し EC2上に秘密鍵をアップロードした後、 ssh ec2-user@プライベートIPアドレス -i myprivatekey.pem を実行し無事ログインすることができました。 それぞれの操作でログインすることができたことから おそらくnano myprivatekey.pem を実行し、ペーストする際の操作に何かミスがあったのだと思います。 初歩的なミスで申し訳ありません。 scpコマンドやssh-agentなど良い勉強になりました。ありがとうございました。
guest

回答1

0

自己解決

解決法①
PC上でssh-addの中身を一度ssh-add -Dで空にしてから
ssh-add /Users/Username/.ssh/myprivatekey.pem を実行し秘密鍵を追加した後
ssh -Aでログインしたところ、無事ログインすることができました。

解決法②
PC上でscp ~/.ssh/myprivatekey.pem ec2-user@パブリックIPアドレス:/home/ec2-userを実行し
EC2上に秘密鍵をアップロードした後、
ssh ec2-user@プライベートIPアドレス -i myprivatekey.pem を実行し無事ログインすることができました。

手作業で秘密鍵をコピー、ペーストの作業をスキップした途端上手くいったので
おそらくnano myprivatekey.pem 実行あたりにミスがあったのだと思います。

アドバイスをくださったyu_1985さん、TaichiYanagiyaさん、本当にありがとうございました。

投稿2021/07/16 13:21

yayayayayaya

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問