余白の書きなぐり

aueweのブログ

さくらVPSのUbuntu14.04LTS にRLogin でX11ログインする方法

ローカルのWindows7Xmingをインストール

フリーのWindows用Xサーバー「Xming」のインストールと基本設定、使い方XmingによるX Window利用 に書かれているのと同じようにインストールする。 Putty をインストールする必要はない。

ローカルのWindows7Xmingを起動

C:\Program Files (x86)\Xming\Xming.exe で起動する。設定は C:\Program Files (x86)\Xming\XLaunch.exe で変更可能。 画面サイズは XLaunch.exe の Additional Parameters for Xming-screen 0 1366 1024 などと設定する。

さくらVPSUbuntuX11をインストール

$ sudo su
# apt-get install xinit

#

さくらVPSUbuntuX11を起動

# startx &
# exit
$

RLogin のX11ポートフォワードの設定

サーバ---プロトコル---ポートフォワード(P) をクリックして、以下のように設定する。

f:id:auewe:20141128230249p:plain

f:id:auewe:20141128222217p:plain

f:id:auewe:20141128222229p:plain

これで接続すると、X11が使用可能。xev 等のコマンドで使用可能か確認できる。

gnuplotに関する蛇足

さくらVPSのubuntu14.04LTS-server の場合、aptでインストールできるgnuplotはnoxバージョンなので、Xmingで使用するためには

$ sudo apt-get install gnuplot-x11

とする。

RLogin のフォント設定まとめ

RLoginWindows環境における便利な端末エミュレータだ。 ただ残念なことに、デフォルトのフォントがキモいという問題がある。 そのうえフォントサイズの変更方法がわかりにくいので、まとめておこう。

フォントの種類の変更

半角アルファベットと記号のフォントを変更する場合は以下のようにする。 まず ファイル-サーバーの接続-新規or編集 をクリックし、 フォントタブを選択する。

f:id:auewe:20140530142920p:plain

ここで ASCII(ANSI X3.4-19... をダブルクリックして Font Parameter ウィンドウを開けて、 Font ボタンをクリックする。

f:id:auewe:20140530143303p:plain

Font ボタンをクリックすれば、好きなフォントを指定できるが、 注意点として、この画面ではフォントサイズが変更できない!! フォントのサイズの変更は スクリーン タブで行う。

フォントのサイズの変更

ファイル-サーバーの接続-新規or編集 をクリックし、 スクリーンタブを選択する。

f:id:auewe:20140530144500p:plain

フォントサイズから一行あたりの文字数を決定 を選択し、その隣の数値 (上の画像では 20) を変えれば フォントサイズが変更される。20以上の値も入力可能。


参考サイト:

RLogin 端末の16色カラーがキモいのを直す方法

Windowsssh サーバーにログインしたい時には、 PuttyTeraTerm といった 端末エミュレータを用いるのが一般的だが、 僕は RLogin という端末を常用している。 RLogin は Sixel が使えるなど様々な点で先進的で使いやすいのだが、使用者をあまり見かけないのはなぜだろうか。

そんなハッピーな RLogin の抱える問題点として デフォルトの16色カラーがキモい ことが挙げられる。 なんというか視認性が悪い気がする。 他にも初期設定のフォントやフォントサイズが不満であるものの、 とりあえず今回は色設定を見直そう。

色設定を変更するには、 ファイル-サーバーの接続-新規or編集 をクリックし、カラー タブを選択する。

f:id:auewe:20140530033532p:plain

端末を黒背景 + 白文字にするには、

  • 文字カラーの文字色を 15
  • 文字カラーの背景色を 0

にすればよい。

メジャーな端末の色を再現する

やや趣味的な話題だが、RLoginでメジャーな端末の色を再現してみる。 一例として軽量端末の urxvt の色を真似しよう。 やり方は、まず先ほどのカラータブ上部の四角い色見本(黒、赤、緑、、、) を順にクリックして 色の作成 を選ぶ。 そして以下のように RGB の数値を指定すればよい。

f:id:auewe:20140530033818p:plain

urxvt 以外にもメジャーな端末はたくさんある。色設定をまとめておく。

urxvt

上の画像中に記載した urxvt のデフォルトの色設定を再掲する。 urxvtは Unix-like な環境の端末の中で最も軽い(と思う)のでおすすめ。

一段目
---:  R   G   B
0  :  0   0   0
1  :  205 0   0
2  :  0   205 0
3  :  205 205 0
4  :  0   0   205
5  :  205 0   205
6  :  0   205 205
7  :  250 235 215

ニ段目
---:  R   G   B
8  :  64  64  64
9  :  255 0   0
10 :  0   255 0
11 :  255 255 0
12 :  0   0   255
13 :  255 0   255
14 :  0   255 255
15 :  255 255 255

Gnome Terminal

Linux MintUbuntu の標準的端末。 色は urxvt とほぼ同じ。

一段目
---:  R   G   B
0  :  0   0   0
1  :  170 0   0
2  :  0   170 0
3  :  170 85  0
4  :  0   0   170
5  :  170 0   170
6  :  0   170 170
7  :  170 170 170

ニ段目
---:  R   G   B
8  :  85  85  85
9  :  255 85  85
10 :  85  255 85
11 :  255 255 85
12 :  85  85  255
13 :  255 85  255
14 :  85  255 255
15 :  255 255 255

xterm

一段目
---:  R   G   B
0  :  46  52  54
1  :  204 0   0
2  :  78  154 6
3  :  196 160 0
4  :  52  101 164
5  :  117 80  123
6  :  6   152 154
7  :  211 215 207

ニ段目
---:  R   G   B
8  :  85  87  83
9  :  239 41  41
10 :  138 226 52
11 :  252 233 79
12 :  114 159 207
13 :  173 127 168
14 :  52  226 226
15 :  238 238 236

KDE Konsole

一段目
---:  R   G   B
0  :  0   0   0
1  :  178 24  24
2  :  24  178 24
3  :  178 104 24
4  :  24  24  178
5  :  178 24  178
6  :  24  178 178
7  :  178 178 178

ニ段目
---:  R   G   B
8  :  104 104 104
9  :  255 84  84
10 :  84  255 84
11 :  255 255 84
12 :  84  84  255
13 :  255 84  255
14 :  84  255 255
15 :  255 255 255

Gmailの外部アカウントのPOP3受信の遅延を無くす最強の方法

GmailPOP3機能で外部アカウントのメールを受信できる。 しかしその更新間隔が長く、しばしば1時間以上の遅延が起きる。

間違った対策

遅延対策としてあちこちのインターネットに書かれているのが メールを今すぐ確認するボタンを手動クリック という、あまりに原始的な方法。

f:id:auewe:20140518022539p:plain

これは根本的な解決になっていない。 外部アカウントがメールを受信すれば即座にGmailに反映されて欲しいわけだが、 この方法で受信間隔を短くするには、人間がPCの前で待機して メールを今すぐ確認するボタンを定期的に押さねばならないからだ。 要するに手動でPOP3してるようじゃ、遅延は解消できない。

最強の方法 → GMail POP3 Checker

GMail POP3 Checker を使えば メールを今すぐ確認するボタンを3分毎に自動クリック してくれる。 このスクリプトを導入したブラウザを常時立ち上げておけば、 外部アカウントがメールを受信したとき、 3分以内に Gmail の受信ボックスにもメールが届くというわけ。 圧倒的に最強なのです。

以下では FirefoxChrome のそれぞれについて、スクリプトの導入法をまとめておく。 (他のブラウザにも導入可能)

GMail POP3 Checker の導入方法 (Firefox)

まずアドオンの Greasemonkey を導入する。次に GMail POP3 Checker の"Click here to download this fancy script!" をクリックすると、自動的にインストールされる。 おもむろに Gmail を開くと、ページの右上に

f:id:auewe:20140513151332p:plain

このような "POP3 3:00 Donation" が表示されるはずだ。 あ、更新間隔は3分ではないかも。 寄付すれば更新間隔が変更できるが、寄付しなければ7分間隔になる。

GMail POP3 Checker の導入方法 (chrome)

まずアドオンの Tampermonkey を導入する。 次に GMail POP3 Checker の"Click here to download this fancy script!" をクリックしてインストールすれば準備完了。 Gmailにアクセスすれば、右上に "POP3 3:00 Donation" が表示される。

他のブラウザについては GmMail POP3 Checkerの Installation Directions を参照せよ。

はてなブログの LaTeX 数式表示がデフォルトで MathJax 化された

2014/05/10 における数式記入法まとめ

はてなブログLaTeX で数式を書くには以下のようにします。

[tex:{ \displaystyle
b_n = \sum_{m=0}^{N-1} a_m
}]

結果↓

{ \displaystyle
b_n = \sum_{m=0}^{N-1} a_m
}

数式は png画像ではなく MathJax で出力されるのでコピペ可能ですが、特に 数式をマウスで反転して「show math as」を選べば LaTeX形式でコピペできます。

以前から MathJax を使ってるはてなブロガー達へ

以前 はてなブログにLaTeXで数式を書く (Markdown記法用) という記事タイトルで、はてなブログMathJax で数式を出力する方法を紹介しました。 そこでは色々書きましたが、今後は

[tex:{ \displaystyle
b_n = \sum_{m=0}^{N-1} a_m
}]

を使って数式を入れましょう。

さて、あなたには2つの道が用意されています。

1. MathJax スクリプトの設定を残す

前回紹介した、サイドバーの設定

<script
  type="text/javascript"
  src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
></script>

を残し、新規に数式を書く場合は [tex:{ 形式を使用する。

2. MathJax スクリプトの設定を消す

今までに書いた \\(...\\)の数式を全て [tex:{ 形式に置換し、前回設定した <script... をサイドバーから削除する。

シェルスクリプトの平文パスワードをセキュアにする方法

追記: (2015/8/3) 大量のはてブが付いたので 続き を書きました。

sshを使用している人は文字列を手軽に暗号化・復号化できるという話。 このテクニックを使えば色々セキュアになるのでおすすめ。 今回はシェルスクリプト中の平文パスワードをセキュアに代替する。

平文パスワードはやめよう

シェルスクリプト中でパスワードが必要になったとき、 とりあえず平文で書いてしまいがち。

#!/bin/sh
PASSWORD="hoge"

これをセキュアにしたい。 面倒くさいのは嫌なので、なるべく手持ちのツールで暗号化、復号化したい。 ssh用の rsa 秘密鍵と、openssl(大抵の環境に入っている)を使って改善しよう。

秘密鍵の準備

パスワードを暗号化するにあたって、秘密鍵を使用する. sshを常用している場合は ~/.ssh/id_rsa という秘密鍵が存在するだろう。 もし秘密鍵が無ければ ssh-keygen で作成しよう。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/auewe/.ssh/id_rsa): # ENTER を押す
Enter passphrase (empty for no passphrase): # ENTER を押す
Enter same passphrase again: # ENTER を押す
Your identification has been saved in /home/auewe/.ssh/id_rsa
Your public key has been saved in /home/auewe/.ssh/id_rsa.pub
The key fingerprint is:
0f:2c:88:3d:40:13:0f:b5:a3:d4:0e:b7:e5:86:28:91 auewe@orenomachine
The key's randomart image is:
+--[ RSA 2048]----+
|   o.            |
| k = .           |
|   a   .      a  |
| o X B .  m      |
|. a B S S        |
| B   o . o       |
|      o          |
|                 |
|                 |
+-----------------+

これで秘密鍵 ~/.ssh/id_rsa が作成される。

openssl で文字列を暗号化、復号化

秘密鍵 ~/.ssh/id_rsa を用いて文字列やファイルを暗号化し、 pass.rsa というファイルに保存しよう。 openssl rsautl -encrypt を用いる。

  • 暗号化
# hoge という文字列を暗号化して pass.rsa に書き込むコマンド
$ echo 'hoge' | openssl rsautl -encrypt -inkey ~/.ssh/id_rsa > pass.rsa

# plain.txt というテキストファイルを暗号化して pass.rsa に書き込むコマンド
$ openssl rsautl -encrypt -inkey ~/.ssh/id_rsa -in plain.txt > pass.rsa

暗号化後のファイル pass.rsa を復号化するには openssl rsautl -decrypt を用いる。

  • 復号化
# 暗号化された pass.rsa を復号化して標準出力に表示するコマンド
$ openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in pass.rsa

従って、冒頭のインセキュアなシェルスクリプトは次のように書き換えよう。

#!/bin/sh

# 暗号化されたパスワードファイル pass.rsa は、あらかじめ用意しておく
PASSWORD=$(openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in pass.rsa)

補足

暗号化も復号化も秘密鍵を使用したが、 暗号化に関して言うと、原理的には公開鍵 ~/.ssh/id_rsa.pub を用いれば pass.rsa が得られるはずだ。 今回は秘密鍵ファイル中に含まれる公開鍵の情報を用いて暗号化している。

参考

ssh の RSA 鍵を openssl コマンドで扱ってみる

sshで多段接続 (ncも-Wもない人用)

sshで多段接続したい。多段接続について一番わかり易くまとまってるサイトは ncある限りぼくはどこまででもいけるッ! だと思う。ただ残念なことに、うちの環境には nc が入ってなかった。

$ ssh remote
bash: nc: command not found
ssh_exchange_identification: Connection closed by remote host

最近は nc を使わずに ssh -W オプションで代用できるらしい。 今後はこちらが推奨されるとのこと。 ProxyCommandによるsshの多段接続について

しかし僕の環境にはssh -Wもなかった。さてどうするか。

connect の導入

そういうときは connect を使う。 connect を使って簡単に多段 SSH を実現する方法 にそのへんの事情が載っている。

connectコマンドの導入はとても簡単で、 connect.c中継地に ダウンロードした後、

$ gcc connect.c -o connect

コンパイルすればおわり。

環境設定

localから、中継地stepを経由して、remoteに接続したい。 さっきも書いたけど、中継地に connect を導入すること。

local -----------> step -----------> remote
                ↑connect導入
localの環境

localでは~/.ssh/configだけ設定。

# local (~/.ssh/config)

Host remote
Hostname remote.url.jp   # remoteのurl
ProxyCommand ssh step /home/step/bin/connect %h %p
#                     ↑stepサーバー内でのconnectパスを指定
User remote_account_name # stepからremoteに接続するときのアカウント名

# ---------------

Host step
Hostname step.url.jp   # stepのurl
User step_account_name # localからstepに接続するときのアカウント名
stepの環境

stepでは~/.ssh/config~/.ssh/authorized_keysを設定。 まず~/.ssh/config

# step (~/.ssh/config)

Host remote
Hostname remote.url.jp   # remoteのurl
User remote_account_name # stepからremoteに接続するときのアカウント名

.ssh/authorized_keys

# step (~/.ssh/authorized_keys)
localの~/.ssh/id_rsa.pubを登録
remoteの環境

remoteでは~/.ssh/authorized_keysを設定。

# remote (~/.ssh/authorized_keys)
stepの~/.ssh/id_rsa.pubを登録
localの~/.ssh/id_rsa.pubも登録