AWS EC2インスタンスにSSH接続するのどうやるんだっけ(^~^)?

ふにゃ~(^~^) 公開下書き

20211127blog269.png

ramen-tabero-futsu2.png
「 AWS EC2 インスタンスに、 Visual Studio Code の Remote - SSH を使って接続するには どうすればいいんだぜ?」

本文(その1)

ohkina-hiyoko-futsu2.png
「 Visual Studio Code に SSH接続あるんじゃないの?」

20211119blog55.png

ramen-tabero-futsu2.png
「 👆 昔 練習してたけど、使い方忘れたぜ」

20211119blog56.png

ramen-tabero-futsu2.png
「 👆 なんの説明も無いぜ」

Host 表示名
  HostName ec2-99-999-999-999.us-east-2.compute.amazonaws.com
  IdentityFile C:\muzudho\xxxxxx\yyyyyyy.pem
  User ubuntu

ramen-tabero-futsu2.png
「 👆 前の練習の残ってるソースを見ると こんな感じに書けばいいらしいぜ」

20211119blog57.png

ramen-tabero-futsu2.png
「 👆 設定ファイルは書いたけど……どうやって SSH接続するんだぜ?」

20211119blog57a1.png

ramen-tabero-futsu2.png
「 👆 こういう小さいアイコンを 押せという UIデザインは やめてほしい」

20211119blog58.png

ramen-tabero-futsu2.png
「 👆 右クリックでも出てきた」

20211119blog59a1.png

ramen-tabero-futsu2.png
「 👆 もう接続できてるらしいぜ?」

本文(その2)

20211120blog71.png

ramen-tabero-futsu2.png
「 👆 簡単にファイルをアップロードする方法ある?」

kifuwarabe-futsu.png
「 SFTP でアップロードしたらどうだぜ?」

ramen-tabero-futsu2.png
「 AWS EC2 にファイルをアップロードする一般的な方法って どうやるんだぜ?」

📖 VSCode の Remote - SSH 機能を使って EC2 上で開発する

ohkina-hiyoko-futsu2.png
「 👆 Windows からなら、WinSCP を使うか、Visual Studio Code の Remote SSH を使うんじゃないの?」

20211120blog72.png

ramen-tabero-futsu2.png
「 👆 Open Folder ボタンを押して / を入れればいいのかだぜ?」

20211120blog73.png

ramen-tabero-futsu2.png
「 👆 おおー」

ramen-tabero-futsu2.png
「 でも permission denied」

📖 VSCodeのRemote SSHで「Permission denied (publickey).」と出て接続できない

ramen-tabero-futsu2.png
「 👆 読んでも分からん」

ramen-tabero-futsu2.png
「 リモート接続できなくなったぜ」

kifuwarabe-futsu.png
「 ubuntu ユーザーではなく、 root で入ったらどうだぜ?」

ramen-tabero-futsu2.png
「 なんだかよく分からないので、いったん C:\Users\むずでょ\.ssh ディレクトリ下の SSH接続の設定を 削除しようぜ」

20211120blog74a1.png

ramen-tabero-futsu2.png
「 👆 こんどは  のアイコンを押してみようぜ?」

20211120blog75.png

ramen-tabero-futsu2.png
「 👆 接続文字列の例が出てくるぜ」

  • ssh - そのまま打つ
  • スペース - そのまま打つ
  • hello - ログイン ユーザー名か?
  • @ - そのまま打つ
  • microsoft.com - ログイン先ホスト文字列か?
  • スペース - そのまま打つ
  • -A - そのまま打つ

20211120blog76.png

ramen-tabero-futsu2.png
「 👆 また選択肢が出てきたぜ。何だぜこれ?」

kifuwarabe-futsu.png
「 設定の保存先の例では?」

ramen-tabero-futsu2.png
「 そのようだぜ」

C:\Users\むずでょ\.ssh\config:

Host 世界政府きふわらべ
  HostName ec2-n-nnn-nnn-nnn.us-east-2.compute.amazonaws.com
  User ubuntu
  ForwardAgent yes

ramen-tabero-futsu2.png
「 👆 ForwardAgent yes って何だぜ? さっきと違う」

20211120blog77.png

ramen-tabero-futsu2.png
「 👆 とりあえず こういう画面の出し方は覚えたぜ」

ramen-tabero-futsu2.png
「 このあと ホスト名の横のアイコンのクリックから Connect host to Current Window を選んで Linux を選ぶ。
でも接続できない」

kifuwarabe-futsu.png
「 さっきできたことが、なんでできなくなったんだろな?」

20211120blog78.png

ramen-tabero-futsu2.png
「 👆 接続できなくなった。分からん」

20211120blog79a1.png

ramen-tabero-futsu2.png
「 👆 この [接続] ボタンを押すと いろいろ書いてあったので、やり直すぜ」

📖 VS Code Remote Development SSHセットアップ中にハマったこと

ramen-tabero-futsu2.png
「 👆 自力での解決は無理だったので、他人の記事を漁ろうぜ?」

C:\Users\むずでょ\AppData\Roaming\Code\logs

ramen-tabero-futsu2.png
「 👆 Visual Studio Code のエラーログはこのディレクトリにあるらしいぜ?」

C:\ProgramData\ssh\ssh_config

ramen-tabero-futsu2.png
「 👆 設定ファイルのパスもこんなところだぜ。 .ssh とか、 .aws とか関係なかったのか」

kifuwarabe-futsu.png
「 Windowsの日本語アカウント名を変えるのがめんどくさくて、前に そこへ移動したんじゃないか?」

ohkina-hiyoko-futsu2.png
「 そのフォルダーは Roaming されそうな名前してるから C:\sshconfig とか適当な名前の別のフォルダーにした方が
良さそうらしいわよ」

20211120blog81.png

ramen-tabero-futsu2.png
「 👆 Visual Studio Code に SSH の設定ファイルを指定していないときは こんな画面のようだぜ」

20211120blog82a1.png

ramen-tabero-futsu2.png
「 👆 マウスカーソルを この辺りに持ってこないと 歯車ボタンが出てこないのも トラップだが、
とにかく押せだぜ」

20211120blog83a1.png

ramen-tabero-futsu2.png
「 👆 ファイルパスを入れてから Settings を選ぶという順番があるのも トラップだぜ」

20211120blog84.png

ramen-tabero-futsu2.png
「 👆 なんだか 分からない画面が出てくるぜ。無視」

20211120blog85.png

kifuwarabe-futsu.png
「 いや、設定ファイルへの絶対パスを入れろだぜ」

ramen-tabero-futsu2.png
「 でも つながらん」

C:\Users\むずでょ\.ssh\ssh_config

ramen-tabero-futsu2.png
「 👆 ユーザーディレクトリーの下じゃないとダメなのでは?」

ohkina-hiyoko-futsu2.png
「 ふつうに SSH 接続したら どうなんの?」

ssh -h

unknown option -- h
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]     
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]      
           [-i identity_file] [-J [[email protected]]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]     
           [-w local_tun[:remote_tun]] destination [command]

20211120blog91.png

ramen-tabero-futsu2.png
「 👆 なんだぜ これ?」

ohkina-hiyoko-futsu2.png
「 Docker をインストールしたから メモリを使い切ったんじゃないの?」

ramen-tabero-futsu2.png
「 無料版では ダメだったか」

kifuwarabe-futsu.png
「 t2.micro はメモリが 1GB しかなかったのに そこに Docker をインストールしたのが敗因だな」

20211120blog92.png

ramen-tabero-futsu2.png
「 👆 料金が分からんからなあ。有料版選びづらいぜ。
Dockerを動かすには メモリ 8GB は必要らしいぜ」

20211120blog93.png

ramen-tabero-futsu2.png
「 👆 t2.large でいいかな」

20211120blog94a1.png

ramen-tabero-futsu2.png
「 👆 セキュリティはとりあえず マイIP にして……」

20211120blog97.png

ramen-tabero-futsu2.png
「 👆 ステータスチェックが通るのを待つぜ」

20211120blog98.png

ramen-tabero-futsu2.png
「 👆 ずっと見てても変わらないんだな、この画面」

kifuwarabe-futsu.png
「 じゃあ SSH接続しろ」

"C:\Users\むずでょ.ssh\ssh_config":

Host ここに表示名
  HostName ec2-n-nnn-nnn-nnn.us-east-2.compute.amazonaws.com
  User ubuntu

Host *.*.*.*
  StrictHostKeyChecking no

IdentityFile "C:\Users\むずでょ\.aws\xxxxxxxxxxx.pem"

ServerAliveInterval 120
ServerAliveCountMax 3

ramen-tabero-futsu2.png
「 👆 SSHの設定ファイルは これを埋める感じで」

20211120blog99.png

ramen-tabero-futsu2.png
「 👆 この画面までは これるんだよな」

20211120blog100.png

ramen-tabero-futsu2.png
「 👆 でも接続できないぜ」

"C:\Users\むずでょ.ssh\ssh_config":

Host ここに表示名
  HostName ec2-n-nnn-nnn-nnn.us-east-2.compute.amazonaws.com
  User ubuntu
  IdentityFile "C:\Users\むずでょ\.aws\xxxxxxxxxxx.pem"

Host *.*.*.*
  StrictHostKeyChecking no

ServerAliveInterval 120
ServerAliveCountMax 3

ramen-tabero-futsu2.png
「 👆 IdentityFile の場所を変えるぜ」

20211120blog101.png

ramen-tabero-futsu2.png
「 👆 こういう画面を見たの今日2回目だぜ」

20211120blog101.png

ramen-tabero-futsu2.png
「 👆 ターミナルは SSH接続できてそうなんだよな」

20211120blog102.png

ramen-tabero-futsu2.png
「 👆 Open Folder はルートからやってみようぜ?」

20211120blog103.png

ramen-tabero-futsu2.png
「 👆 すると ディレクトリ階層が見えているぜ」

本文(その3)

20211121blog109.png

ramen-tabero-futsu2.png
「 👆 入れねーっ」

kifuwarabe-futsu.png
「 寝る前にインスタンスを停止し、今朝 インスタンスを起動しただろ。
何かが変わってるのでは?」

20211121blog110a1.png

ramen-tabero-futsu2.png
「 👆 この数字が変わんの?」

kifuwarabe-futsu.png
「 IPアドレスは 接続が切れたマシンに割り振った番号は 再利用されるからな」

ramen-tabero-futsu2.png
「 C:\Users\むずでょ\.ssh\ssh_config に書いたIPアドレスを再編集」

20211121blog111a1.png

ramen-tabero-futsu2.png
「 👆 何だぜ この気味の悪い文字は?」

kifuwarabe-futsu.png
「 サーバーが偽物でないか確認してるんだぜ。
お父んはアホだから確認できないので 無視して Continue しろだぜ」

20211121blog112a1.png

ramen-tabero-futsu2.png
「 👆 Open Folder をクリックしてみよ」

ramen-tabero-futsu2.png
「 \ (ルート)に接続するぜ」

本文(その4)

20211123blog156.png

ramen-tabero-futsu2.png
「 👆 料金ケチって インスタンス停止させていて また起動すると IPアドレス変わるのか めんどくさ」

kifuwarabe-futsu.png
「 Docker 使うだけなら EC2 以外でもサービス変わらないんで、コストが低い さくらインターネットや IDCF も
選択肢に入ってくるんじゃないか?」

20211123blog157.png

ramen-tabero-futsu2.png
「 👆 SSHの設定ファイルは、とりあえず1つ用意して そこに書いていけだぜ」

C:\Users\むずでょ\.ssh:

Host 電子政府きふわらべ
  # インスタンスを再起動するとIPアドレスは変わります
  HostName ec2-3-21-39-126.us-east-2.compute.amazonaws.com
  User ubuntu
  IdentityFile "C:\Users\むずでょ\.aws\e-gov-vote-kifuwara1119.pem"

Host *.*.*.*
  StrictHostKeyChecking no

ServerAliveInterval 120
ServerAliveCountMax 3

ramen-tabero-futsu2.png
「 👆 ファイルの内容はこんな感じだぜ。この内容は古いからクラッキングには使えないぜ」

20211123blog158a1.png

ramen-tabero-futsu2.png
「 👆 Visual Studio Code を開けだぜ。
Remote - SSH をインストールしていれば、ここにアイコンが出るぜ。クリックしろだぜ」

20211123blog159.png

ramen-tabero-futsu2.png
「 👆 わたしは前に SSH接続したから、すでに設定が画面に残っているぜ」

20211123blog160.png

ramen-tabero-futsu2.png
「 👆 右クリックしてから Cunnect to Host in Current Window を選ぶぜ」

20211123blog161.png

ramen-tabero-futsu2.png
「 👆 接続できないぜ」

ohkina-hiyoko-futsu2.png
「 こうやって接続できない間にも 1時間 200円以上 払ってるのよ?」

20211123blog162.png

ramen-tabero-futsu2.png
「 👆 この勝手に生成される known_hosts というファイルの内容が古いのでは?」

kifuwarabe-futsu.png
「 新しくしてくれだぜ」

ramen-tabero-futsu2.png
「 自分で書きかえたけど、やっぱり接続できないぜ」

ohkina-hiyoko-futsu2.png
「 じゃあ knwon_hoss ファイルを削除したらどう?」

ramen-tabero-futsu2.png
「 knwon_hoss ファイルを削除しても SSH接続できないぜ」

📖 VSCodeのRemote SSHで接続に失敗する場合の対処方法

VSCodeの「ファイル」ー「ユーザー設定」ー「設定」から
「Remote.SSH: Config File」の設定を開きます。

20211123blog163a1.png

20211123blog164a1.png

ramen-tabero-futsu2.png
「 👆 設定してるけどなあ」

20211123blog165.png

ramen-tabero-futsu2.png
「 👆 フーム。 ポートが何か関係あるのかだぜ?」

ramen-tabero-futsu2.png
「 わたしの IPアドレス は昨日と変わってないしな」

20211123blog166.png

ramen-tabero-futsu2.png
「 👆 SSHポートは開けてるしな」

ohkina-hiyoko-futsu2.png
「 ssh_config ファイルも削除したらどう?」

20211123blog167.png

ramen-tabero-futsu2.png
「 👆 じゃあ いったん空に」

20211123blog168.png

ramen-tabero-futsu2.png
「 👆 これが初期状態」

20211123blog169a1.png

ramen-tabero-futsu2.png
「 👆 歯車アイコンをクリックしてみるかだぜ」

20211123blog170a1.png

ramen-tabero-futsu2.png
「 👆 存在しないファイルパスをクリックするぜ」

20211123blog171.png

ramen-tabero-futsu2.png
「 👆 下書きが出てくるけど、これだけだと情報が足りないと思うけど」

20211123blog172.png

ramen-tabero-futsu2.png
「 👆 埋めてみたぜ」

20211123blog173a1.png

ramen-tabero-futsu2.png
「 👆 アイコンをクリックしてみようぜ」

20211123blog174a1.png

ramen-tabero-futsu2.png
「 👆 Linux を選ぶぜ」

20211123blog175.png

ramen-tabero-futsu2.png
「 👆 でもダメ」

ssh -i "C:\Users\むずでょ\.aws\e-gov-vote-kifuwara1119.pem" ec2-18-117-237-63.us-east-2.compute.amazonaws.com

ramen-tabero-futsu2.png
「 👆 ふつうに SSH接続したろ」

20211123blog176.png

ramen-tabero-futsu2.png
「 👆 でもダメ」

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

ssh -v -i "C:\Users\むずでょ\.aws\e-gov-vote-kifuwara1119.pem" [email protected]

ramen-tabero-futsu2.png
「 👆 -v とユーザー名を追加」

20211123blog181.png

ramen-tabero-futsu2.png
「 👆 でもダメ」

📖 EC2 インスタンスに SSH で接続しようとすると、「接続が拒否されました」または「接続がタイムアウトしました」というエラーが表示されます。これを解決するにはどうすればよいですか?

ramen-tabero-futsu2.png
「 👆 EC2 シリアルコンソール というのがあるのかだぜ?」

おわり

20211127blog270-50per.png 📖 AWS記事まとめ

何度でもクリック!→

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位 の最近の記事