SSHサーバに公開鍵を設定する方法

SSHサーバに鍵を設定

[OpenSSH] SSHサーバにパスワードなしでログインする方法 – Life with IT

ローカルから公開鍵を送信

scp .ssh/id_rsa.pub username@hostname:~/id_rsa.pub

ログインしてから公開鍵を設定

ssh username@hostname

mkdir .ssh
chmod 700 .ssh/
cd .ssh
cat ~/id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
rm ~/id_rsa.pub

scpコマンドでエラーが出た場合

bash: scp: コマンドが見つかりません – リジェクトされました

bash: scp: コマンドが見つかりません
みたいなエラーが出た場合は、openssh-clientsがサーバに入ってないのが原因みたい。

sudo yum install openssh-clients

自分用EC2サーバ設定メモ

AWS EC2 Linux開発環境 構築メモ – Qiita

こちらの記事を参考に設定。

rootパスワード設定

ec2-userでログイン
sudo su –
passwd
新パスワードを設定
確認パスワードを入力
「all authentication tokens updated successfully.」と表示されたらOK

作業用ユーザーを作成

デフォルトのec2-user以外のユーザーを作成
su –
useadd user1
passwd user1
「all authentication tokens updated successfully.」と表示されたらOK
作成ユーザーにsudo権限を与える
usermod -G wheel user1
visudo
以下行のコメントアウトを外す
#%wheel ALL=(ALL) ALL -> %wheel ALL=(ALL) ALL

SSHポート番号変更

SSHポート番号変更

sshのデフォルト22番から変更
vi /etc/ssh/sshd_config
port 22 -> それ以外(3579とか)
service sshd restart #sshd再起動

セキュリティグループの変更

コンソールのセキュリティグループからインバウンド設定にポートを追加(or変更)
タイプ:カスタムTCPルール
プロトコル:TCP
ポート範囲:3579とか
送信元:マイIPなど、接続する用途に応じて

変更後のポートに対してsshログイン可能であることを確認

日本語設定に変更

cp /etc/sysconfig/i18n ~/i18n.org
sudo vi /etc/sysconfig/i18n
LANG=en_US.UTF-8 -> LANG=ja_JP.UTF-8

最新のソフトウェアにアップデート

sudo yum update -y

タイムゾーンの変更

タイムゾーンの変更

date #確認
cp /etc/localtime ~/localtime.org
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
date #変更を確認

再起動時にUTFに戻らないように

cp /etc/sysconfig/clock ~/clock.org
sudo vi /etc/sysconfig/clock
ZONE=”UTC” -> ZONE=Asia/Tokyo”
UTC=true -> UTC=false

システム全体に反映(全てのプロセスに反映するため)

sudo reboot

メール設定

mailコマンドをAmazon Linuxにインストールする方法 – Hive Color

デフォルトでmailコマンドがないのでmailxをインストール
(…ってsendmailで送ればいい?)
sudo yum install -y mailx
echo “body” | mail -s “subj” test@test.com #送信確認

メールアドレス設定

障害時の通知用

cp /etc/aliases ~/aliases.org
sudo vi /etc/aliases
#root: marc -> root: test@test.com #変更
sudo newaliases #反映
cho test|mail root #送信確認

MacにHomebrewでjqをインストール

JSONを超絶に読みやすくする jq コマンド – WebAPIバリバリ使うor開発する人必須

awsコマンドでjsonを返すように設定したので、jsonを何とかしたい。どうやらjqという超絶便利なものがあるらしいので入れてみることに。

MacならHomebrewで入れるのが簡単。

brew update
brew install jq

多分これだけで入るはず…なんですが、自分は中途半端な理解でhomebrewを使っていたので面倒なことに。

以下余談

問題はbrew updateせずにインストールしようとしてエラーが出たこと。どうやらjq-1.4.tar.gzがダウンロードできない(404 Not Found)のが問題。そこで調べたら下記のURLにヒット。

brew で ffmpeg をインストールしようとしたら 404 エラーが出た – KRAKENBEAL RECORDS

なるほどjq.rbを修正するばいいのかと、下記のように修正。

vi /usr/local/Library/Formula/jq.rb

urlとsha1の値を修正して、brew install jqしたら無事(?)入りました。
その後、brew updateをしようとしたら下記のエラー。

brew update

error: Your local changes to the following files would be overwritten by merge:
    Library/Formula/readline.rb
Please, commit your changes or stash them before you can merge.
error: Your local changes to the following files would be overwritten by merge:
    Library/Formula/jq.rb
Please, commit your changes or stash them before you can merge.
Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

どうやら内容が変更されてしまってることを怒られてる。やっぱり…適当にしちゃいけません。そもそも先にbrew updateしなきゃいけませんよね。

ヾ(o゚ω゚o)ノ゙brew updateでエラーでたった[Homebrew] – Qiita

上記サイトを参考に修正。homebrewのある場所に移動して、
fetchして、ローカルリポジトリをリモートの最新で上書きした。

cd $(brew --prefix) #多分 /usr/local に移動
git fetch origin
git reset --hard origin/master

これでbrew updateを実行したのと同じ状態になっているはず。ふぅ、これからは気をつけよう…というかちゃんと仕組みを理解しよう…

Amazon Web Service CLIのインストール&設定など(Mac)

勉強がてら試してみたかったので。基本的には公式サイトの手順通りですんなり。

OS:Mac OS X 10.9.5 Mavericks

念のためMacに入ってるpythonのバージョン確認。2.7.5でした。

python -V
Python 2.7.5

AWS CLI のインストールと設定 – Amazon Kinesis

pip のウェブサイトからインストールスクリプトをダウンロードして実行

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
sudo python get-pip.py

pip を使用して AWS CLI をインストール

sudo pip install awscli

ここまで手順通り。

AWS CLI の設定

CLIを使うための設定。メールアドレスとパスワードで入るAWSアカウントを普段使いするのは推奨されないらしいので、操作用に全権限を割り当てたIAMユーザーを作成。AWSコンソール画面上から、作成した管理用ユーザーを選択して「アクセスキーの作成」ボタンを押して「アクセスキーID」と「シークレットアクセスキー」を取得しておく。

aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE #アクセスキーID
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY #シークレットアクセスキー
Default region name [None]: ap-northeast-1 #デフォルトの地域。これは東京。下記URL参考
Default output format [None]: json #結果の種類。json/text/tableから選択

Regions and Endpoints – Amazon Web Services

この作業が完了すれば設定OK。コマンドが使えます。

ユーザー一覧を取得してみる

aws iam list-users

{
    "Users": [
        {
            "UserName": "MyUser",
            "PasswordLastUsed": "2015-12-01T09:05:24Z",
            "CreateDate": "2015-11-21T17:51:25Z",
            "UserId": "ABCDEXXXXXXXXXXXXXXXX",
            "Path": "/",
            "Arn": "arn:aws:iam::000001111122:user/MyUser"
        }
    ]
}

こんな感じで設定したjsonで結果が帰ってきます。IAMで使えるコマンドリファレンスは下記を参考にしました。

iam — AWS CLI 1.9.9 Command Reference

ここで、IAMユーザー名をテストで適当につけてしまったけれど、コンソール画面からは変更できず、CLIからしか変更できないようなので丁度いい。変更してみることに。
IAM ユーザーの管理 – AWS Identity and Access Management

aws iam update-user --user-name MyUser --new-user-name hogehoge

–user-nameに現在のUserNameを、–new-user-nameに変更したいUserNameを指定してコマンドを叩けばOK。結果は特に返らず、コンソールから確認したら変更されてました。簡単!

その他使いそうなコマンド(課題)

下記のサイトを思いっきり参考にさせて頂きました。
AWS CLIでサービスの各種コマンドを動かしてみる(EC2編1: インスタンス) | Developers.IO

# インスタンス一覧
aws ec2 describe-instances

# インスタンスを開始
aws ec2 start-instances --instance-ids i-xxxxxxxx

# インスタンスを停止
aws ec2 stop-instances --instance-ids i-xxxxxxxx

# インスタンスを再起動
aws ec2 reboot-instances --instance-ids i-xxxxxxxx

# インスタンスを終了(消去)
aws ec2 terminate-instances --instance-ids i-xxxxxxxx

# インスタンスを作成、起動(指定したimage-idから)
aws ec2 run-instances --image-id ami-xxxxxxxx --min-count 1 --max-count 1

副腎疲労の疑いあり?

「♪もう疲れた誰か助けてよ」Mr.Children – 旅人

最近、胃腸の様子がすこぶる微妙です。日中の眠気も尋常じゃないし、食欲もいまひとつだし、腰もたまにピキっときたりして満身創痍。あかんね…

症状でいうと、背骨の両サイドを押すとイタ気持ちよくて、前にも気になってた副腎疲労と関係あるかも?とアタリをつける。そういえば最近、炭水化物もチョコもコーヒーもお酒も普通に摂取して、ストレスも増えてるし、まさに副腎疲労になるべくしてなってる気が。

普通に摂取してって言っても、自分なりの普通。チョコは6粒、お酒は1合弱は、まぁ平均程度か。コーヒーはちゃんとしたものを1日マグカップ1杯、ご飯は1日で茶碗1.5杯ぐらいは平均以下?とはいえ摂取量なんて個人差で目安にしかならないから、自分にとっては少し多めです。睡眠も短めだし、ちょっと油断してたな…

ちなみに体重は以前から少し下がって55kg台で安定。安定してるから、まぁマシでしょう。

以下、ネットで見つけた副腎疲労などに関する参考記事。

来週は試しに検査することにしたから、ちょっと気をつけなくては。