「AWS EC2を使ってRailsアプリをデプロイ」のログ01
はじめに
*個人情報っぽいものはhogeで隠している。
作成したインスタンスにパブリックDNSが表示されない場合、ここを参考
AWSでPublic DNS(パブリックDNS)が割り当てられない時の解決法 - Qiita
EC2ログインする
brew install python brew install awscli ↑まずやる wadakazuma@kw desktop % mkdir ~/.ssh wadakazuma@kw desktop % cd ~/.ssh wadakazuma@kw .ssh % chmod 600 key_berlin_now.pem wadakazuma@kw .ssh % ssh -i key_berlin_now.pem ec2-user@ここにElasticIP ssh: connect to host 52.197.166.41 port 22: Operation timed out
↓ port:22エラー
【AWS EC2 エラー】ssh port 22 Operation timed out - Qiita
上によると、セキュリティグループのインバウンドルールの、port22をカスタムからマイipに変える必要があるらしい。その後インスタンスを停止、起動
↓
結果: 行けた(個人情報っぽいものは、hogeで隠した。)
wadakazuma@kw .ssh % ssh -i key_berlin_now.pem ec2-user@ここにelasticip The authenticity of host 'hogehoge' can't be established. ECDSA key fingerprint is hogehoge. Are you sure you want to continue connecting (yes/no/[fingerprint])?
ssh通信による、インスタンスへのログイン
サーバーとクライアントの暗号化された通信
参照: https://www.kagoya.jp/howto/rentalserver/ssh/
個人情報っぽいものは一応隠している
ローカル
鍵を生成
wadakazuma@kw .ssh % ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/wadakazuma/.ssh/id_rsa): keyの名前登録 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in hoge. Your public key has been saved in key_berlin_now.pub. The key fingerprint is: **************************wadakazuma@kw.local The key's randomart image is: ここに線で書かれたboxが表示される wadakazuma@kw .ssh % ls 自分のキーとpubのキーが生成さてた
それ(鍵)をどの通信の認証で使うかの設定
.ssh % vim config --------------------------------------------- # 以下を追記 Host mumu_key_rsa Hostname 前出のElastic IP (#自分の設定に合わせて) Port 22 User kazumawada (#先ほどのユーザー名) IdentityFile ~/.ssh/key_berlin_now_rsa (#秘密鍵の設定) -------------------------------------------------
サーバ(EC2)
https://aws.amazon.com/amazon-linux-2/ [ec2-user@ip-10-0-0-197 ~]$ sudo su - kazumawada 最終ログイン: 2021/02/05 (金) 02:03:45 UTC日時 pts/1 [kazumawada@ip-10-0-0-197 ~]$ mkdir .ssh [kazumawada@ip-10-0-0-197 ~]$ chmod 700 .ssh [kazumawada@ip-10-0-0-197 ~]$ cd .ssh [kazumawada@ip-10-0-0-197 .ssh]$ vim authorized_keys vimないに、rsaのpubで出力されたコードを入力。 (ローカルがrsa。サーバーがそのpubのコード) [kazumawada@ip-10-0-0-197 .ssh]$ vim authorized_keys [kazumawada@ip-10-0-0-197 .ssh]$ chmod 600 authorized_keys [kazumawada@ip-10-0-0-197 .ssh]$ exit
700読み込み書き込み実行ができる
https://chmodcommand.com/chmod-700/
600読み込み書き込みができる
https://chmodcommand.com/chmod-600/
これで通信できると思ったら、
エラーでた
permission deny
no such identity: /Users/wadakazuma/ssh/key_berlin_now_rsa: No such file or directory kazumawada@elasticIpがここに: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ローカルからキーを入力したら、ElasticIPが表示されたから、繋がってはいると思う。
EC2へのSSH接続でPermission denied (publickey). が出たとき - Qiita
解決 typoだった。
.ssh内のconfigファイル(鍵をどの通信で使用するかの設定)をvimでもう一度見返したら、.sshのはずがsshになっていた。それを直したら、通った。
.sshが、sshと書いていたから、通らなかった。これは.sshと書き直した。
Host key_rsa Hostname 前出のElastic IP (#自分の設定に合わせて) Port 22 User ユーザー名 IdentityFile ~/.ssh/key_rsa (#秘密鍵の設定)
インスタンスへログインできた。
次は、
EC2インスタンスの環境構築
(Rubyとかを動くようにするため。)
エラー。
sudoで環境をインストールしようと思ったら、passwordを聞かれたけど、思いつく限りのものを打ってみたがうまくいかない。
↓
AWSの初期設定でrootパスワードを設定する - Qiita
↓
そもそもパスワードが初期では設定されていないからする必要があるみたい。
↓
一旦ec2userでログインする。そこで以下のように、passwed設定
#一旦ec2userでログイン wadakazuma@kw .ssh % ssh -i key_berlin_now.pem ec2-user@hogehoge Last login: Fri Feb 5 02:52:56 2021 from hoge __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ #パスワードみ設定のユーザーに行く [ec2-user@ip- ~]$ sudo su - kazumawada [root@ip-10-0-0-197 ~]# passwd Changing password for user root. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@ip-10-0-0-197 ~]#
exitしてec2インスタンスにもう一回password入力してみる。
[ec2-user@ip-10-0-0-197 ~]$ sudo su - kazumawada 最終ログイン: 2021/02/05 (金) 07:18:12 UTC h175-hogeから開始日時 pts/1 [kazumawada@ip-10-0-0-197 ~]$ passwd Changing password for user kazumawada. Changing password for kazumawada. (current) UNIX password: passwd: Authentication token manipulation error [kazumawada@ip-10-0-0-197 ~]$
確かにパスワードはwmkm0511
sudo adduser kazumawada [ec2-user@ip-10-0-0-197 ~]$ sudo passwd wmkm0511 passwd: 不明なユーザー名 'wmkm0511'。 [ec2-user@ip-10-0-0-197 ~]$ sudo visudo wadakazuma@kw .ssh % sudo su - kazumawada wadakazuma is not in the sudoers file. This incident will be reported. wadakazuma@kw .ssh % sudo adduser kazuma wadakazuma is not in the sudoers file. This incident will be reported. wadakazuma@kw .ssh % ssh -i key_berlin_now.pem ec2-user@hoge Last login: Fri Feb 5 01:26:32 2021 from h175-177-04
AWS EC2(Linux)パスワード認証設定方法 - Qiita
EC2インスンス(Linux)作成した際、デフォルトは鍵認証しか許可されていないため、 パスワード認証を許可したい場合は、sshd_configの設定が必要です。
やったこと
#まずルートで入る sudo su - #このファイルは、ルート以外では入れなかったから。 vi /etc/ssh/sshd_config PasswordAuthentication yesを追加した。
[sudo] kazumawada のパスワード: 残念、また試してください。
まだパスワードが違うって言われた。
現状整理
なぜかkazumawadaUserでsudoコマンドを実行できない。
パスワードが違うと言われるから。
↓
・ec2user kazumawadaのパスワードの確認方法
・ec2インスタンスでのsudo実行方法を調べる必要がある。
sudoで入って、
visudo
をやってみる。
すでにkazumawadaがallになっていた。
これでログインして実行っしてみる
ssh -i key_berlin_now_rsa kazumawada@hoge
結果同じ。
これを試す。
Amazon EC2にSudoユーザーを追加する。 - Qiita
解決
↓どうやったか。
passwordを要求されないようにしてみる。
visudo
kazumawada ALL=(ALL) NOPASSWD:ALL
EC2にRubyなどをもろもろをインストールしていく
参考:
(デプロイ編①)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで - Qiita