※当サイトの記事には、広告・プロモーションが含まれます。

AWS Toolkit for EclipseというEclipseプラグインでAWS(Amazone Web Service)のEC2インスタンスにssh接続

なんか楽天カードから引き落とされてる毎月の金額が多いとは感じてましたが、AWS(Amazone Web Service)の仮想マシンを削除し忘れていて、その分が課金されていた模様(涙)。

f:id:ts0818:20180204112233j:plain f:id:ts0818:20180204112245j:plain

『1 US$ = 110.132159 円(2018年2月4日 現在)』ってなってたので、約500円ぐらい無駄に出費していたことに(泣)

f:id:ts0818:20180204133123j:plain

インスタンスを削除する前に、せっかくなんで、最後に何かトライしてみたいと思います。 

 

qiita.com

⇧  AWSAmazon Web Services)については、上記サイト様が詳しいです。

 

そんでは、今回もハマりにハマっていきますか~。

 

AWS Toolkit for EclipseというEclipseプラグイン

AWS Toolkit for Eclipse は、AWSが提供しているオープンソースEclipseプラグインで、Amazon EC2Amazon Elastic Compute Cloud)やAmazon RDS(Amazon Relational Database Service)といった、AWS上のサービスをEclipseから操作できるようです。

というわけで、まずはEclipseを起動。(いい加減、バージョンを上げた方が良いかな?)

qiita.com

⇧  上記サイト様によると、2018年の6月にはまた新しいバージョンが登場予定らしいですね。(Eclipse 4.7 Oxygen にしてもないのに、もう次のバージョンが出るとは...)

f:id:ts0818:20180204141350j:plain

起動できたらば、「ヘルプ(H)」>「Eclipse マーケットプレイス(M)...」を選択。

f:id:ts0818:20180204141926j:plain

「検索(I):」で、「AWS Toolkit for Eclipse」で検索するようですが、AWS Toolkitぐらいまででもヒットしました。(2018年2月4日 現在)

AWS Toolkit for Eclipse 2.0」の「インストール」をクリック。

f:id:ts0818:20180204142336j:plain

インストールするツールを選択する画面が表示されるので、すべてにチェックが付いていることを確認し、「確認(C)>」をクリック。

f:id:ts0818:20180204143042j:plain

「使用条件の条項に同意します(A)」にチェックを付け、「完了(F)」。

f:id:ts0818:20180204143208j:plain

インストールが完了すると、再起動を促されるので、「はい(Y)」を選択。

f:id:ts0818:20180204143636j:plain

AWS Toolkit for Eclipse」のアイコンが追加されます。

f:id:ts0818:20180204144151j:plain

 

 

 

AWSのアクセスユーザー(IAM ユーザー)の作成

EclipseからAWS上のサービスにアクセスするために、AWSの「IAM(Identity & Accesss Management)」 というサービスで、Eclipseからのアクセス用のAWSユーザーを作成します。

AWSにログインしたらば、「コンソールへログイン」を選択。

f:id:ts0818:20180204144655j:plain

「すべてのサービス」を開いて、下の方にスクロールすると、

f:id:ts0818:20180204145053j:plain f:id:ts0818:20180204145147j:plain

⇧  「セキュリティ、アイデンティティコンプライアンス 」という項目があるので、その中の「IAM」を選択。画面遷移したらば、「ユーザー」を選択。(ただし、これは間違ってました、先に「ポリシー」を作成せねばいけないらしい。参考書が旧かったのか。)

f:id:ts0818:20180204201136j:plain

「ユーザーを追加」を選択。

f:id:ts0818:20180204201228j:plain

「ユーザー名*」を入力し、「アクセスの種類*」にチェックを付けたら、「次のステップ:アクセス権限」をクリック。

f:id:ts0818:20180204201446j:plain

「既存のポリシーを直接アタッチ」を選択し、「ポリシー名」の「AmazoEC2FullAccess」にチェックを入れ、「ポリシーの作成」をクリック。

Amazon RDSなんかのサービスを利用する場合は、そちらにもチェック。

f:id:ts0818:20180204202014j:plain

「サービス」、「アクション」、「リソース」、「リクエスト条件」を編集していきます。まずは、「サービス」の行をクリック。

f:id:ts0818:20180204202236j:plain

今回は、「EC2(Amazon EC2)」を選択。

f:id:ts0818:20180204202506p:plain

続いて、「アクション」の行をクリック。

f:id:ts0818:20180204202416j:plain

「All EC2 actions(ec2.*)」にチェック。警告が出ますが、次の「リソース」のところで「すべてのリソース」を選択すると消えます。「閉じる」をクリック。

f:id:ts0818:20180204202353j:plain

「アクション」を編集した段階で、「リソース」にいろいろ表示されますが、「リソース」の行をクリックし編集していきます。

f:id:ts0818:20180204203037j:plain

ラジオボタンが表示されるので、「すべてのリソース」を選択し、「閉じる」を選択。

f:id:ts0818:20180204203057j:plain

「リクエスト条件」は、「MFAが必須」を選択。

f:id:ts0818:20180204203226j:plain

MFA(Multi-Factor Authentication)とは 、Wikipediaによりますと、

Multi-factor authentication (MFA) is a method of confirming a user's claimed identity in which a user is granted access only after successfully presenting 2 or more pieces of evidence (or factors) to an authenticationmechanism: knowledge (something they and only they know), possession (something they and only they have), and inherence (something they and only they are).

Two-factor authentication (also known as 2FA) is a type (subset) of multi-factor authentication. It is a method of confirming a user's claimed identity by utilizing a combination of two different factors: 1) something they know, 2) something they have, or 3) something they are.

A good example of two-factor authentication is the withdrawing of money from a ATM; only the correct combination of a bank card (something that the user possesses) and a PIN (personal identification number, something that the user knows) allows the transaction to be carried out.

Two-step verification or two-step authentication is a method of confirming a user's claimed identity by utilizing something they know (password) and a second factor other than something they have or something they are. An example of a second step is the user repeating back something that was sent to them through an out-of-bandmechanism. Or the second step might be a 6 digit number generated by an app that is common to the user and the authentication system

Multi-factor authentication - Wikipedia

残~念、日本語じゃないじゃな~い! Googleの翻訳こんにゃくによりますと、

 『認証メカニズムに2つ以上の証拠(または要因)を正常に提示した後でのみ、ユーザにアクセス権が与えられているユーザの主張された身元を確認する方法です。』

日本語では、「多要素認証」なんて言葉でもってもてはやされてますが、要するに、認証するときに2つ以上情報が必要ってことで、

ワンタイムパスワード

などが該当するんではないでしょうか。(ユーザーID以外に、例えばスマホなどのハードウェアで生成されたトークンを認証に利用みたいな感じですかね)

www.segunabe.com

⇧  ワンタイムパスワードについては、上記サイト様が詳しいです。

 

だいぶ、脱線してしまいましたが、すべて編集できたら、「Review Policy」をクリック。

f:id:ts0818:20180204205033j:plain

「名前*」は必須なので、何か適当に。他は無くても良いみたいです。

「Create Policy」をクリック。

f:id:ts0818:20180204205123j:plain

ポリシーが作成されます。

f:id:ts0818:20180204205243j:plain

「ポリシータイプ」で「ユーザーによる管理」を選択すると、

f:id:ts0818:20180204205350j:plain

作成したポリシーを確認できます。

f:id:ts0818:20180204205430j:plain

 

AWSのアクセスユーザー(IAM ユーザー)が作成されてない

おい、AWSどうなってる?

f:id:ts0818:20180204205812j:plain

 ⇧  IAM ユーザーが存在しません  、じゃねぇ~!とりあえず、もう一回、「ユーザーを追加」を選択。(どうやら、参考書は既に作成されていたポリシーを使ってたようですね)

「既存のポリシーを直接アタッチ」を選択し、「ポリシータイプ」で「ユーザーによる管理」を選択。

f:id:ts0818:20180204221157j:plain

先ほど作成したポリシーにチェックを付け、「次のステップ: 確認」を選択。

f:id:ts0818:20180204221244j:plainf:id:ts0818:20180204221301j:plain

「ユーザーの作成」をクリック。

f:id:ts0818:20180204221958j:plain

今度はユーザーが作成さたようです。「閉じる」を選択。

f:id:ts0818:20180204222202j:plain

ユーザーが追加されています。「ユーザー名」で追加されたユーザーをクリック。

f:id:ts0818:20180204222326j:plain

「認証情報」タブをクリック。

f:id:ts0818:20180204222420j:plain

「アクセスキーID」でアクセスする感じですかね?

f:id:ts0818:20180204222806j:plain

⇧  MFAデバイスがまだ設定されていませんね。

 

MFA(Multi-Factor Authentication)を設定してみる

せっかくなので、MFAを設定していこうと思うのですが、Windowsの場合は、

dev.classmethod.jp

⇧  上記サイト様によると、「WinAuth」という仮想MFAアプリケーションを利用することで、スマホなどの実機が無くてもMFAを試すことができるようです。

 

https://winauth.github.io/winauth/index.html にアクセス。

winauth.github.io

ページ下部にスクロールすると、

f:id:ts0818:20180204224533j:plain

「Downloads」の項目に「Stable and Beta Downloads」というリンクがあるのでクリック。 

f:id:ts0818:20180204224615j:plain

「WinAuth-x.x.x.zip」を選択すれ選択すれば良いかと。(今回は、「WinAuth-3.6.2.zip」を選択)

f:id:ts0818:20180204224946p:plain

ダウンロードされたzipファイルに「WinAuth.exe」という実行ファイルが入っています。適当な場所に展開しておきます。

f:id:ts0818:20180204225217j:plain

自分はデスクトップに適当なフォルダを作成してそこに配置しました。

f:id:ts0818:20180204225911j:plain

 

AWSのユーザーの認証情報の設定

AWSの「ユーザー」で作成したユーザーを選択し、「認証情報」タブを選択し、「MFAデバイスの割り当て」の をクリック。

f:id:ts0818:20180204222806j:plain

「MFAデバイスの管理」というウィンドウが開くので、「仮想 MFA デバイス」が選択されていることを確認し、「次のステップ」をクリック。

f:id:ts0818:20180204230352j:plain

「次のステップ」をクリック。

f:id:ts0818:20180204230653j:plain

「手動設定のシークレットキーを表示」をクリック。

f:id:ts0818:20180204230746j:plain

仮想 MFA アプリケーションによって求められたら、以下のシークレット設定キーを入力します。」と表示され、「シークレット設定キー」が表示されるので、コピーします。

f:id:ts0818:20180204230943j:plain

ダウンロードして展開しておいた「WinAuth.exe」を実行。

「I understand and accept the conditions of this BETA version.」にチェックを入れ「OK」をクリック。

f:id:ts0818:20180204232559j:plain

「Add」をクリック。

f:id:ts0818:20180204232707j:plain

Google」を選択します。

f:id:ts0818:20180204232730j:plain

「Name:」は適当に変えても良さそうです。(自分はGoogleのままになってしまっていた。)

「1. Enter the Secret Code for your ~」のところに「シークレット設定キー」を張り付けます。その後に「Verify Authenticator」をクリック。 

f:id:ts0818:20180204232932j:plain

 6桁の数字が表示されるので、一回目と

f:id:ts0818:20180204233621j:plain

二回目の数字を、

f:id:ts0818:20180204233636j:plain

「MFAデバイスの管理」のウィンドウの「認証コード 1」「認証コード 2」にそれぞれの6桁の数字を入力し、「仮想 MFAの有効化」をクリック。

f:id:ts0818:20180204233724j:plain

 WithAuthのほうで、「OK」をクリックすると、「Protection」という画面になるので、「Protect with my own password」にチェックを付け、「Password」「Verify」に適当なパスワードを入力します。「OK」をクリック。

f:id:ts0818:20180204234028j:plain

これで、WinAuth.exeでワンタイムパスワードが生成できるようになったようです。

f:id:ts0818:20180204234506j:plain

 

EclipseからAWSにアクセスしてみる

AWS toolkit for Eclipseのアイコンf:id:ts0818:20180206203606j:plainの横の▼をクリックし、「Open AWS Management Perspective」を選択。

f:id:ts0818:20180206200533j:plain

AWS Management」という「パースペクティブ」に切り替わります。「AWS Exploer」の「AWS Account not Configured」を選択した状態で右クリックし、「Configure AWS Accounts」を選択。

f:id:ts0818:20180206203752j:plain

AWSへ接続するための情報を入力していくのですが、

f:id:ts0818:20180206204213j:plain

「アクセス・キーID(A):」「秘密アクセス・キー(S):」は、AWS側のコンソールの「すべてのサービス」>「IAM」を選択し、「ユーザー」でユーザーを選んだあとに、「認証情報」タブに切り替えて、

f:id:ts0818:20180206204709j:plain

 

「アクセスキー」の項目の「アクセスキー ID」で「アクセス・キーID(A):」は確認できますが、

f:id:ts0818:20180206204859j:plain

「秘密アクセス・キー(S):」はどうやって確認するのか?

dotnsf.blog.jp

⇧  上記サイト様によると、な、何と!アクセスキーを作成したときの一度しか確認できないらしいです...。

仕方がないので、新たに作成することにしました。 

「アクセスキーの作成」をクリックすると、「成功」というポップアップが表示され、「シークレットアクセスキー」を確認できます。「.csv ファイルのダウンロード」でファイルもダウンロードできるようです。

※ただし、この場のみ。

f:id:ts0818:20180206205930j:plain

アクセスキーは2個までしか作れないようなので、要らなくなったら削除して、新たに作成していくのがAmazonスタイルらしいです。

f:id:ts0818:20180206210219j:plain

Eclipseのほうで、「アクセス・キーID(A):」「秘密アクセス・キー(S):」を入力し、「OK」。

f:id:ts0818:20180206210957j:plain

で、接続されてしまうという...MFA使われずに接続されてしまって良いんですかね?

f:id:ts0818:20180206211137j:plain

「C:¥Users¥ユーザー名¥.aws¥credetials」を変更したよってなるので、「はい」をクリック。

f:id:ts0818:20180206211106j:plain

Amazon Exploere」の「Amazon EC2」をダブルクリックするとビューが表示されます。「EC2 AMIs」はAWSが用意してるいろんなアプリのイメージみたいです。

Dockerでいうと、コンテナの元となるDockerイメージみたいなもんですかね?

f:id:ts0818:20180206213214j:plain

 ただ、今回は、既に作成してるEC2インスタンス仮想マシン)をEclipseから起動させたいんですが、Eclipseから新しいインスタンスを作ってAWSにデプロイっていうような情報ばっかりで、まいっちんぐマチコ先生、ってなもんですが。

 

AWS Toolkit for EclipseでEC2インスタンスssh接続のための設定

ネットをさ迷うこと3日、AWSのEC2インスタンス仮想マシン)にssh接続する参考サイト見つけましたよ~。 

d.hatena.ne.jp

⇧  上記サイト様が説明してくれてました。 

まずは、「ウィンドウ(W)」>「設定(P)」を選択。

f:id:ts0818:20180211224256j:plain

AWS ツールキット」>「キー・ペア」を選択し、f:id:ts0818:20180211224512j:plain を選択。

f:id:ts0818:20180211224120j:plain

「Key Pair Name:」に適当な名前を入力し、「OK」。

f:id:ts0818:20180211224628j:plain

「キー・ペア」が追加されてます。

f:id:ts0818:20180211225107j:plain

「Private Key Directory:」で指定した場所に秘密鍵が作成されます。(※本来、秘密鍵はセキュリティの観点から厳重に管理する必要があります。)

f:id:ts0818:20180211224940j:plain

 

続いて、同じくEclipseの「ウィンドウ(W)」>「設定(P)」を選択したら、「一般」>「ネットワーク接続」>「SSH2」を選択し、「秘密鍵(R):」の項目で、「秘密鍵の追加(I)...」を選択。

f:id:ts0818:20180211225257j:plain

先ほど、作成した秘密鍵を選択。「開く(O)」をクリック。

f:id:ts0818:20180211225425j:plain

秘密鍵(R):」に追加されてることを確認し、「OK」を選択。

f:id:ts0818:20180211225518j:plain

 

続いて、「パースペクティブ(R)」>「パースペクティブを開く(O)」>「その他(O)...」を選択。

f:id:ts0818:20180211230924j:plain

「リモート・システム・エクスプローラー」を選択し、「OK」。

f:id:ts0818:20180211231035j:plain

「リモート・システム・エクスプローラー」のパースペクティブに切り替わったら、

f:id:ts0818:20180211231115j:plain

「リモート・システム」の中の「ローカル」を選択した状態で右クリックし、「新規(A)」>「接続(A)...」を選択。

f:id:ts0818:20180211231221j:plain

SSHのみ」を選択し、「次へ(N)>」。(「Amazon EC2」が無かったので)

f:id:ts0818:20180211231346j:plain

「ホスト名:」のところに、EC2インスタンスの「Elastic IP」、もしくは「パブリック DNS (IPv4) 」を指定します。

f:id:ts0818:20180211232210j:plain

「Elastic IP」「パブリック DNS (IPv4) 」を確認するために、AWSのコンソールにログインし、「すべてのサービス」>「EC2」を選択し、

f:id:ts0818:20180211232522j:plain

インスタンス」をクリック。

f:id:ts0818:20180212112152j:plain

利用したいインスタンスを選択すると、下の方にインスタンスの情報が表示されるので、「説明」タブで、「Elastic IP」もしくは、「パブリック DNS (IPv4) 」をコピーします。

f:id:ts0818:20180212112212j:plain

再び、Eclipseに戻ってきて、「ホスト名」に「Elastic IP」もしくは、「パブリック DNS (IPv4) 」を張り付けます。「接続名:」は適当に。「説明:」は無くても大丈夫かと。「次へ(N)>」。

f:id:ts0818:20180211233114j:plain

自分はデフォルトの状態で「次へ(N)>」を選択しました。

f:id:ts0818:20180211233250j:plain

ここもデフォルトの状態で「完了(F)」を選択しました。

f:id:ts0818:20180211233405j:plain

作成した「接続名」を選択した状態で右クリックし、「接続(L)」を選択。

f:id:ts0818:20180211233459j:plain

「ユーザーID:(I)」は「ec2-user」で。パスワードを設定している場合は、「パスワード(オプション):(B)」を入力し、「OK(O)」。(パスワードを設定していない場合は、パスワードは空欄のままでOK。)

f:id:ts0818:20180212221206j:plain

はい、エラー。接続できず。

f:id:ts0818:20180211234136j:plain

 

AWSのEC2インスタンスを起動していなかった...。

f:id:ts0818:20180211234423j:plain

EC2インスタンスを起動します。

f:id:ts0818:20180211234616j:plain

 

f:id:ts0818:20180212001233j:plain

 起動中...

f:id:ts0818:20180212001255j:plain

起動しました。

f:id:ts0818:20180212111249j:plain

 

 

 

再度、Eclipseの「リモート・システム」接続で、「警告」が出ますが、「はい(Y)」。

f:id:ts0818:20180212001600j:plain

エラー。

f:id:ts0818:20180212001707j:plain

 「

SSH を使用した EC2 Linux インスタンスへの接続の問題に関するトラブルシューティングはどのように行えばいいですか?

SSH を使用して、現在の IP アドレスから EC2 インスタンスにアクセスできないことを示しています。

デフォルトでは EC2 インスタンスへのネットワーク接続は有効化されていません。AWS マネジメントコンソールにて、VPC 内の設定変更を行う必要があります。

SSH を使用して EC2 Linux インスタンスへ接続するには、まず IP アドレスからの SSH 経由での EC2 インスタンスへのアクセスに対するセキュリティグループ許可を確認してください。

SSH 経由での EC2 Linux インスタンスへの接続に関するトラブルシューティング

⇧  むっちゃ面倒くさい...セキュリティを堅牢にしたいのは分かりますが、何とかならんもんですかね。

とりあえず、設定してみる。AWSのコンソールにログインしたら、「すべてのサービス」>「コンピューティング 」>「EC2」を選択し、「インスタンス」を選択後、利用したいインスタンスを選択。「説明」タブの「セキュリティグループ」をクリック。

f:id:ts0818:20180212113500j:plain

「インバウンド」タブを選択し、「編集」をクリック。

(「セキュリティグループ」がない場合は「セキュリティグループの作成」で作成。)

f:id:ts0818:20180212114207j:plain

「ルールの追加」で、「タイプ」を「SSH」、「ソース」を「マイ IP」にして「保存」をクリック。

f:id:ts0818:20180212113820j:plain

 

続いて、『ルートテーブルがインターネットからの送受信を許可するように設定されていることを確認』。

「すべてのサービス」>「ネットワーキング & コンテンツ配信 」>「VPC」を選択するんですが、検索で「VPC」としてもいけるようです。

f:id:ts0818:20180212110818j:plain

 「ルートテーブル」を選択。

f:id:ts0818:20180212121020j:plain

ルートテーブルを選択すると、

f:id:ts0818:20180212121101j:plain

下の方に情報が表示されるので、「ルート」タブを選択。「ターゲット」の『igw-xxxxxx』ってのが『インターネットゲートウェイ (IGW) に向けたデフォルトルート』ってことだと思われます。

f:id:ts0818:20180212122526j:plain

サイドバーで「インターネットゲートウェイ」を選択し、『インタネットゲートウェイ』の「ID」が、上記の「ターゲット」と合っているのが確認できれば大丈夫かと。

f:id:ts0818:20180212122020j:plain

で、再び、Eclipseの「リモート・システム」から接続を試みるも認証エラー。

 

docs.aws.amazon.com

PuTTY を使用してインスタンスに接続している場合

秘密キー (.pem) ファイルが PuTTY によって認識される形式 (.ppk) に変換されていることを確認します。プライベートキーの変換の詳細については、「PuTTY を使用した Windows から Linux インスタンスへの接続」を参照してください。

注記

PuTTYgen でプライベートキーファイルをロードし、[Generate] ではなく [Save Private Key] を選択します。

何てこった...変換しとらんかった....そりゃ接続できんですね。 

 

docs.aws.amazon.com

PuTTY は、Amazon EC2 によって生成されるプライベートキー形式 (.pem) をネイティブにサポートしていません。PuTTY には、キーを必要な PuTTY 形式 (.ppk) に変換できる PuTTYgen と呼ばれるツールが含まれています。PuTTY を使用してインスタンスへの接続を試みる前に、秘密キーをこの形式 (.ppk) に変換する必要があります。

PuTTY を使用した Windows から Linux インスタンスへの接続 - Amazon Elastic Compute Cloud

というわけで、Eclipseで作成した「キーペア」 の「秘密鍵」を「.ppk」形式に変換していきます。「Puttygen」を起動します。(PuTTYがインストールされていれば、Puttygenも一緒に付いてくるようです。)

f:id:ts0818:20180212124302j:plain

「Parameters」で「SSH-2 RSA」を選択。(新しいバージョンのPUTTYを使っている場合は、「RSA」を選択。)

「Actions」で「Load」を選択。

f:id:ts0818:20180212130512j:plain

今回は、Eclipseの「キーペア」で作成した「秘密鍵」を選択します。

f:id:ts0818:20180212130650j:plain

「OK」をクリック。

f:id:ts0818:20180212130913j:plain

「Save private key」をクリック。

f:id:ts0818:20180212130939j:plain

「key passphrase」などを入力していないため、警告が出ますが「はい(Y)」をクリック。

f:id:ts0818:20180212131017j:plain

「ファイル名(N):」を「キーペア」で作成した秘密鍵と同じ名前にして、「保存(S)」をクリック。

f:id:ts0818:20180212131128j:plain

次に、「公開鍵」を作成。「Save public key」を選択。

f:id:ts0818:20180212153731j:plain

「ファイル名(N):」は何でも良いみたいです。「保存(S)」をクリック。

f:id:ts0818:20180212171142j:plain

f:id:ts0818:20180212131609j:plain をクリックでPuttygenを終了。 

f:id:ts0818:20180212131308j:plain

「.ppk」形式の秘密鍵と、公開鍵が作成されています。

f:id:ts0818:20180212154115j:plain

Eclipseで、「ウィンドウ(W)」>「設定(P)」を選択。

f:id:ts0818:20180212132850j:plain

「一般」>「ネットワーク」>「SSH2」の「一般(G)」タブで、「秘密鍵(R):」で前に追加したpem形式のファイルのパスを消して、「秘密鍵の追加(I)...」を選択。f:id:ts0818:20180212132944j:plain

「.ppk」形式の秘密鍵を選択。「開く(O)」をクリック。

f:id:ts0818:20180212133200j:plain

「OK」をクリック。

f:id:ts0818:20180212133300j:plain

 

で、またAWS側で作業と。

docs.aws.amazon.com

⇧  キーペアをインポートするのと、EC2にログインして、パブリックキー(公開鍵のこと)を「.ssh/authorized_keys」に追記するらしい。

「キーペア」で「キーペアの作成」をクリック。

f:id:ts0818:20180212172417j:plain

Puttygenで作成した公開鍵を選択。 

f:id:ts0818:20180212173413j:plain

「インポート」をクリック。

f:id:ts0818:20180212173510j:plain

キーペアが追加されました。

f:id:ts0818:20180212173805j:plain

EC2インスタンスsshログインし、「.ssh/authorized_keys」に公開鍵の内容を追記すれば良いようです。

sshが利用できるクライアントソフト(WindowsだとTera Termなどが有名?)などで、 

ホスト名 EC2インスタンスの「Elastic IP」もしくは、「パブリック DNS (IPv4) 」
ユーザー名 ec2-user

EC2インスタンスに接続し、viエディターで「.ssh/authorized_keys」に公開鍵の内容を追記します。

sudo vi .ssh/authorized_keys

追記前の状態

f:id:ts0818:20180212204737j:plain

追記後の状態

f:id:ts0818:20180212204759j:plain

という感じで、追記したあとに、作成したキーペアの秘密鍵と公開鍵で再度接続を試みるも接続できない。

ログインしているEC2インスタンスの中に、「/var/log/secure」ファイルがあってログイン時などのログを残してくれているらしい。 

 

sudo vi /var/log/secure
Feb 12 19:45:33 ip-172-31-28-245 sshd[2634]: error: buffer_get_ret: trying to get more bytes 257 than in buffer 26
Feb 12 19:45:33 ip-172-31-28-245 sshd[2634]: error: buffer_get_string_ret: buffer_get failed
Feb 12 19:45:33 ip-172-31-28-245 sshd[2634]: error: buffer_get_bignum2_ret: invalid bignum
Feb 12 19:45:33 ip-172-31-28-245 sshd[2634]: error: key_from_blob: can't read rsa key
Feb 12 19:45:33 ip-172-31-28-245 sshd[2634]: error: key_read: key_from_blob AAAAB3NzaC1yc2EAAAADAQABAAABAQCwvXugF0oYClKVs4vQUVeiGk9EUwMxx4KZ\n failed
Feb 12 19:45:33 ip-172-31-28-245 sshd[2634]: error: Received disconnect from 39.111.245.70: 14: No supported authentication methods available [preauth]

karoten512.hatenablog.com

⇧  上記サイト様によりますと、改行コードの問題らしいですね。 

f:id:ts0818:20180212202959j:plain

⇧  改行コードを削除して1行にした状態で、行の先頭に「ssh-rsa」、行の末尾に「キーペア」の名前をつけ足して、AWSのEC2インスタンス側にsshログインし、「.ssh/authorized_keys」に追記すればOK。

f:id:ts0818:20180212202228j:plain

再度、接続でようやく接続できました。「リモート・システム」のところで、EC2インスタンスディレクトリ構成が表示されてます。

f:id:ts0818:20180212205759j:plain

 

今回もハマりにハマってしまいましたが、なんとかEclipseからAWSのEC2インスタンスssh接続できたということで。

MFAとか IAM ユーザーとか全然活用できてないですが、今回はこのへんで。