omohayui blog

おも‐はゆ・い【面映ゆい】[形][文]おもはゆ・し[ク]《顔を合わせるとまばゆく感じられる意》きまりが悪い。てれくさい。

AWSのEC2にポート22以外でSSH接続できるようにする方法

AWSのEC2でサーバ立ち上げて見たものの

ポート22からの接続が社内ネットワークからは許可されていなかったー(´;ω;`)

みたいなときにポート22以外で接続できるように設定する方法です。

 

 

■環境: Amazon Linux AMI release 2014.09

■サンプルのポート: 54321

 

 

1.SSHのポート番号を変更

$ sudo vim /etc/ssh/sshd_config


# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp
#PORTNUMBER
#
#Port 22
Port 54321

 

2.sshdを再起動

$ sudo /usr/sbin/sshd -t

→何もエラーが出てなければOK

$ sudo /etc/rc.d/init.d/sshd restart

sshd を停止中:            [ OK ]

sshd を起動中:            [ OK ]

 

3.EC2 の Security Group 設定変更

[Security Group] > [Edit inbound rules] inbound_rules [Add Rule]をクリックしポート 54321 の Custom TCP Rule を追加

※IP制限は適宜設定(Anywhereは推奨されていません)

 

4.接続確認

$ ssh -i {認証鍵}.pem -p 54321 ec2-user@{インスタンスのIP}

接続できれば完了!

 

Macでキーマッピングを変更する方法

私はvimユーザーなので「esc」キーをよく使うのですが、

手があまり大きくないので、「control」キー単体押しに「esc」を割り当ててます。

そこで簡単に設定する方法を紹介。

 

もともと「KeyRemap4MacBook」というキーボードカスタマイズツールを使っていたのですが、

最近バージョンアップして「Karabiner」という名前になったそうです。

 

▼「Karabiner」のインストールについて

https://pqrs.org/osx/karabiner/index.html.ja

 

▼キーマッピングの変更方法 

  1. Karabiner起動後「Change Key」タブを選択
  2. 「Change Conrol_L key(Left Control)」をクリック
  3. 「Control_L to Control_L (+ When you type Control_L only, send Escape)」にチェック

karabiner

以上で設定完了です!

よく使うVimコマンド

今さらだけどドットインストールでvimの復習をしたのでメモ。

 

モード

  •  ノーマルモード
  •  入力モード
  •  コマンドモード
  •  ビジュアルモード

移動

  • gg / G 先頭/末尾
  • CTRL+f / CTRL + b 画面ごと
  • w / b 単語ごと
  • ^ / $ 行頭/行末
  • f 文字(次の単語は;)
  • % 対応する括弧にジャンプ

ある単語を別の単語に置き換える方法

  • caw

ヴィジュアルモード

  • v
  • V 行ごと
  • CTRL+v 矩形選択
  • I / A 矩形選択からの編集
  • gg V G 全選択

検索

  • /(検索語)
  • n / N 次/前
  •  * / # カーソル位置の単語検索置換
  • :%s/foo/bar/gc (全部and確認)

取り消し/やり直し

  • u
  • CTRL + r

ウィンドウの分割

  • :sp 縦に分割
  • :vs 横に分割
  • CTRL+w w ウィンドウの移動
  • :close 閉じる

タブ表示

  • :tabnew
  • :tabe ファイル名
  • gt タブ間の移動
  • :tabclose 閉じる

直前の操作を繰り返す

  • .

インデントを揃える

  • = (全選択してから実行が便利)

テキストオブジェクト

  • c / d / y change delete insert
  • i / a 中身か全体か
  • t / " / ) / ] タグ、ダブルコーテーション、括弧
  • ci" ⇒ ”この中を編集する”

PHP5.2⇒PHP5.3移行 と phpmdとかの追加

PHPを5.2から5.3にバージョンアップする際に
いろいろとつまづいたのでメモを残しておこう思う。

■インストール済みのパッケージを確認
yum list installed | grep "php"
 php-cli.i386 5.1.6-27.el5_7.5 installed
 php-common.i386 5.1.6-27.el5_7.5 installed

■インストールできるパッケージを確認
yum list | grep php

■削除
yum remove php php-common php-cli

■インストール
yum install php53 php53-common php53-cli
↓色々足りなかったので追加
yum install php53-mysql php53-mbstring
yum install php53-xml
yum install php-pear

■確認
$ yum list installed | grep "php"
php53.i386 5.3.3-21.el5 installed
php53-cli.i386 5.3.3-21.el5 installed
php53-common.i386 5.3.3-21.el5 installed
php53-mbstring.i386 5.3.3-21.el5 installed
php53-mysql.i386 5.3.3-21.el5 installed
php53-pdo.i386 5.3.3-21.el5 installed

PHPのバージョン確認
$ php -v
PHP 5.2.17 (cli) (built: Mar 2 2012 23:30:11)

おや・・・?

phpinfo.php 作ってブラウザで確認
PHP 5.3.3

$ /usr/bin/php -v
PHP 5.3.3 (cli) (built: Oct 1 2013 18:40:05)
$ /usr/local/bin/php -v
PHP 5.2.17 (cli) (built: Mar 2 2012 23:30:11)

既存とは別のパスにインストールしちゃった。テヘペロ
新しい方のPHPにパスを通すように変更。



次にpearもバージョンアップ
1.4.9⇒1.9.4

pearのバージョン確認
$ pear version
PEAR Version: 1.4.9
PHP Version: 5.3.3
Zend Engine Version: 2.3.0

■インストール済みのパッケージに関してアップグレード出来るものがあるか確認
$ pear list-upgrades 
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
PEAR.PHP.NET AVAILABLE UPGRADES (STABLE):
=========================================
CHANNEL PACKAGE LOCAL REMOTE SIZE
pear.php.net Archive_Tar 1.3.1 (stable) 1.3.11 (stable) 18.1kB
pear.php.net Console_Getopt 1.2 (stable) 1.3.1 (stable) 4.4kB
pear.php.net PEAR 1.4.9 (stable) 1.9.4 (stable) 290kB
pear.php.net XML_RPC 1.5.0 (stable) 1.5.5 (stable) 32kB

■怒られたのでチャンネルをアップデード
$ pear channel-update pear.php.net

pearのアップグレード
$ pear upgrade PEAR
Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in PEAR/Validate.php on line 486

今度はタイムゾーンを指定しろって怒られた。

タイムゾーン指定
php.ini
 date.timezone = Asia/Tokyo
pearアップグレード再実行
ERROR: unable to unpack /tmp/tmpGcrVE1/Structures_Graph-1.0.4.tgz

調べたところpearのバージョンが古すぎてpearのコマンドじゃだめらしい。

■手動でアップグレードをかける
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar
$ pear version
PEAR Version: 1.9.4
PHP Version: 5.3.3
Zend Engine Version: 2.3.0

やっと完了




今回のバージョンアップの目的は
ソースコードをチェックしてくれる
PHP_PMD と phpcpd を入れること。

PHPモジュール追加
$ pear channel-discover pear.phing.info
$ pear channel-discover pear.pdepend.org
$ pear channel-discover pear.phpmd.org
$ pear channel-discover pear.phpunit.de
$ pear channel-discover components.ez.no
$ pear channel-discover pear.symfony-project.com
$ pear channel-discover pear.netpirates.net
$ pear install phing/phing
$ pear install pdepend/PHP_Depend
$ pear install phpmd/PHP_PMD
$ pear install phpunit/phpcpd
$ pear install PHPDocumentor
$ pear install --alldeps phpunit/PHPUnit
$ pear list -a
=============================================
PACKAGE VERSION STATE
Base 1.8 stable
ConsoleTools 1.6.1 stable
PHP_Depend 1.1.1 stable
phing 2.6.1 stable
Archive_Tar 1.3.11 stable
Console_Getopt 1.3.1 stable
PEAR 1.9.4 stable
PhpDocumentor 1.4.4 stable
Structures_Graph 1.0.4 stable
XML_RPC 1.5.5 stable
XML_Util 1.2.1 stable
PHP_PMD 1.5.0 stable
File_Iterator 1.3.4 stable
PHPUnit_MockObject 1.2.3 stable
PHP_CodeCoverage 1.2.13 stable
PHP_Invoker 1.1.3 stable
PHP_Timer 1.0.5 stable
PHP_TokenStream 1.2.1 stable
Text_Template 1.1.4 stable

PHPUnitだけ失敗
$ pear install phpunit/PHPUnit
Unknown remote channel: pear.symfony.com
phpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml" (version >= 2.0.0, version <= 2.99.99)
No valid packages found
install failed
$ pear install channel://pear.symfony.com/Yaml
unknown channel "pear.symfony.com" in "channel://pear.symfony.com/Yaml"
invalid package name/package file "channel://pear.symfony.com/Yaml"
install failed
$ pear channel-discover pear.symfony.com
Adding Channel "pear.symfony.com" succeeded
Discovery of channel "pear.symfony.com" succeeded
$ pear install --alldeps phpunit/PHPUnit 
$ pear install phpunit/phpcpd

PHPunitバージョン確認
$ /usr/bin/phpunit --version
PHPUnit 3.7.28 by Sebastian Bergmann.

■追加
PHPUnit_Selenium 1.3.2 stable
phpcpd 1.4.3 stable

あとはJenkinsおじさんにみてもうだけ