以前、漫画家のすがやみつるさんが
プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/twitterbot/
を利用して Twitter bot (EasyBotter) を作成したと発言されていました。
COOL ONLINE
http://www.cool.ne.jp/
PHP version 4.3.2
私は COOL ONLINE 正規会員登録しています。COOL ONLINE の PHP は version 4.3.2 のようです。Twitter bot (EasyBotter) では PHP 5 以上が必要です。
低額の料金で VPS が利用できる ‘さくらの VPS’ に興味を持っていたので
さくらインターネット|価値あるサービスと満足を提供するデータセンター
http://www.sakura.ad.jp/
で資料を読んでいました。 たまたま ‘さくらの VPS’ ではなく ‘さくらのレンタルサーバー’ も試しに調べてみると ssh、cron が使え、PHP 5.2.14 と記載されていました。アクセス解析も付いています。
プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/twitterbot/
Twitter bot (EasyBotter) を試すために ‘さくらインターネットのレンタルサーバー スタンダード’ に移転することにしました。 ssh を利用してみたかったことも動機の一つです。
Yoshiaki's HomePage
http://koyama-.cool.ne.jp/
上記ページを下記ページに移転します。上の COOL ONLINE ホームページは、来年の 2月頃に終了予定です。もう少し早まるかもしれません。
Yoshiaki's HomePage
http://kyoshiaki.sakura.ne.jp/osx/index.html
Twitter bot (EasyBotter) は何の問題なくインストールすることができました。新規に Twitter bot (EasyBotter) 用の Twitter アカウント KYoshiakiBot を作成し、
Create cool applications! | dev.twitter.com
http://dev.twitter.com/
アプリケーション名を YKEasyBotter で登録しました。上部の Your apps をクリックして
Twitter Applications | dev.twitter.com
http://dev.twitter.com/apps
現在登録されているアプリケーション一覧を表示し、YKEasyBotter をクリックすると Consumer key、Consumer secret を確認できます。Access Token を見つけるのに少し苦労しました。結局、Consumer key などが表示されているページの右側にある My Access Token をクリックすることで Access Token (oauth_token)、Access Token Secret (oauth_token_secret) を見つけることができました。
残念ながら、私が確認したかった OAuth 認証の仕組みではありませんでした。Twitterbot (EasyBotter) 自体は何の問題もなく動作しました。’さくらインターネットのレンタルサーバー スタンダード’で は cron も使うことができます。
‘さくらインターネットのレンタルサーバー スタンダード’ には Webalizer によるアクセス解析が付いてきます。しかし、COOL ONLINE で
COOL ONLINE
http://www.cool.ne.jp/
Yoshiaki's HomePage
http://koyama-.cool.ne.jp/
高機能アクセス解析CGI Professional版 - futomi's CGI Cafe
http://www.futomi.com/library/accp.html
利用していたシェアウェアの ‘高機能アクセス解析CGI Professional版 – futomi’s CGI Cafe’ と比べると非力です。しかし、’さくらインターネットのレンタルサーバー スタンダード’ では、一日ごとのアクセスをログファイルに作成してくれます。そのログファイルをコマンドを実行すると自動的にダウンロードし、解析して表示する Python スクリプトとシェルスクリプトを作成しました。いずれ公開したいと思います。


さくらインターネットのレンタルサーバー スタンダード’ では ssh も利用できます。
‘さくらの VPS’ のために Kindle 版の Pro Linux System Administration 本を購入したのですが、ssh の使用方法も解説されていました。良書です。まだ、半分ほどしか読んでいませんが!
Mac OS X Snow Leopard (バージョン 10.6.5 ビルド 10H574) 上の ‘ターミナル’ と Ubuntu 10.10 ‘Terminal’ 上での簡単な ssh の利用方法解説したいと思います。間違いもあるかもしれません。
SSH の仕組みを利用するコマンドは
- ssh username@remotehost
- scp foo.txt username@remotehost:/home/username/www/
- sftp username@remotehost
などがあります。
ただし、アカウント: username、初期ドメイン: remotehost は
会員メニュートップ
https://secure.sakura.ad.jp/menu/top/
の ‘契約情報’/’契約サービスの確認’/’サーバ設定’ をクリックして ‘さくらインターネットサーバコントロールパネル’ 上部の ‘お客様情報’ で確認してください。
さくらインターネットサーバコントロールパネル
https://secure.sakura.ad.jp/rscontrol/rs/
以下の説明で、アカウント: username、初期ドメイン: remotehost を自分の環境に合わせて変更してください。また、ssh で使用するパスワードは、さくらのウェブ上の会員 ID でログインするパスワードではないので注意してください。
- ssh username@remotehost
- scp foo.txt username@remotehost:/home/username/www/
- sftp username@remotehost
上のコマンドを何も設定せずに実行するとパスワードを尋ねられますが、RSA 公開鍵暗号による認証を利用するとパスワードやパスフレーズ (passphrase) : (秘密鍵用のパスワード) を入力せずにログインすることができます。
ssh で RSA 公開鍵暗号による認証を利用するには
1. コマンド ssh-keygen を使って公開鍵、秘密鍵を作成する。パスフレーズ (passphrase) : (秘密鍵用のパスワード) は、ssh-agent やキーチェーンで登録できるので安全のためにできるだけ入力してください。
2. コマンド ssh-copy-id を使って ~./ssh フォルダのファイル authorized_keys に公開鍵を追加。Mac OS X 上では、コマンド ssh-copy-id がないので手動でコピーする必要があります。
3. コマンド ssh-agent、 eval `ssh-agent`、 ssh-add を使って パスフレーズ (passphrase) : (秘密鍵用のパスワード) を登録。Mac OS X の場合、キーチェーンが パスフレーズ (passphrase) : (秘密鍵用のパスワード) を管理してくれます。
おおまかに上の3つの手順で設定します。
1. Mac OS X Snow Leopard (バージョン 10.6.5 ビルド 10H574) 上の ‘ターミナル’ 上での ssh 設定
1-1. Mac OS X 上の ‘ターミナル’ で、コマンド ssh-keygen -t rsa -b 2048 で公開鍵、秘密鍵を作成。パスフレーズ (passphrase) : (秘密鍵用のパスワード) も安全のためできるだけ登録してください。
~ $ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/xxxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxxx/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx xxxx@xxxxx-xxxxx-xx-xxxx-x.local
The key's randomart image is:
+--[ RSA 2048]----+
| .F++oo..|
| xxx+ . |
| =+.. x|
| . . .+. xx|
| G . .xx |
| ...|
| ..|
| ..|
| .. |
+-----------------+
~ $
1-2. ~/.ssh フォルダにファイル id_rsa (公開鍵) 、d_rsa.pub (秘密鍵) が作成されているのを確認。
~ $ cd .ssh
~/.ssh $ ls
id_rsa id_rsa.pub known_hosts
1-3. リモートホスト (さくら側) に ファイル id_rsa.pub をファイル authorized_keys としてコピー。パスワードを尋ねられるので入力してください。
~/ $ cd .ssh
~/.ssh $ scp id_rsa.pub username@remotehost:/home/username/.ssh/authorized_keys
username@remotehost's password:
id_rsa.pub 100% 422 0.4KB/s 00:00
1-4 最初にコマンド ssh を実行するとパスフレーズを尋ねられます。パスフレーズ (passphrase) : (秘密鍵用のパスワード) を入力して ‘パスワードをキーチェーンに保存’ にチェックを入れてください。これで ssh、scp、sftp を実行しても パスフレーズ (passphrase) : (秘密鍵用のパスワード) を尋ねられることはありません。
~/.ssh $ ssh usernamei@useraname.sakura.ne.jp
Identity added: /Users/yoshiaki/.ssh/id_rsa (/Users/xxxx/.ssh/id_rsa)
Last login: Sun xxx 5 xx:43:14 2010 from xx.xx.xx.xx
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.1-RELEASE-p15 (SAKURA11S) #10: Tue Nov 16 09:48:35 JST 2010
Welcome to FreeBSD!
%exit
logout
Connection to remotehost closed.


上図の赤枠部分より、秘密鍵のパスフレーズがアプリケーション ‘キーチェーンアクセス’ で 保存されているのが確認できます。
1-5 リモートホスト (さくら側) のファイル authorized_keys のパーミッションは 600 にしてください。
~ $ ssh username@remotehost
Last login: xxx xxx 00 xx:32:00 2010 from xx.xx.xx.xx
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.1-RELEASE-p15 (SAKURA11S) #10: Tue xxx 16 09:48:35 JST 2010
Welcome to FreeBSD!
%cd .ssh
%ls
authorized_keys
%chmod 600 authorized_keys
%ls -alF
total 10
drwx------ x xxxx xxxx 512 xxx 0 16:54 ./
drwx---r-x xx xxxx xxxx 512 xxx 00 19:53 ../
-rw------- xx xxxx xxxx 819 xxx 0 19:50 authorized_keys
%exit
logout
Connection to remotehost closed.
~ $
2. Ubuntu 10.10 ‘Terminal’ 上での簡単な ssh の設定方法
2-1. Ubuntu 上の ‘Terminal’ で、コマンド ssh-keygen -t rsa -b 2048 で公開鍵、秘密鍵を作成。パスフレーズ (passphrase) : (秘密鍵用のパスワード) も安全のため登録しておく。
ubuntu:~$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxxx/.ssh/id_rsa):
Created directory '/home/xxxx/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/xxxx/.ssh/id_rsa.
Your public key has been saved in /home/xxxx/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx xxxxi@ubuntu
The key's randomart image is:
+--[ RSA 2048]----+
| ... |
| . x |
| . . . |
| x . |
| x x x |
| x x x . |
| x.x . . |
| --x . |
| .x--. |
+-----------------+
2-2. ~/.ssh フォルダにファイル id_rsa (公開鍵) 、d_rsa.pub (秘密鍵) が作成されているのを確認。
ubuntu:~$ cd .ssh
ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub known_hosts
ubuntu:~/.ssh$
2-3. コマンド ssh-copy-id を使って、リモートホスト (さくら側) に ファイル id_rsa.pub をファイル authorized_keys に追加。パスワードを尋ねられるので入力してください。
ubuntu:~$ ssh-copy-id username@remotehost
The authenticity of host 'remotehost (xx.xx.xx.xx)' can't be established.
DSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'remotehost,xx.xx.xx.xx' (DSA) to the list of known hosts.
username@remotehost's password:
Now try logging into the machine, with "ssh 'username@remotehost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
ubuntu:~$
2-4. 試しに ssh で、リモートホスト (さくら側) にログインしてみると、パスフレーズ (passphrase) : (秘密鍵用のパスワード) を尋ねてきます。
ubuntu:~$ ssh username@remotehost
Enter passphrase for key '/home/xxxx/.ssh/id_rsa':
Last login: xxx xxx 5 xx:33:26 2010 from xx.xx.xx.xx
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.1-RELEASE-p15 (SAKURA11S) #10: Tue Nov 16 09:48:35 JST 2010
Welcome to FreeBSD!
%exit
logout
Connection to remotehost closed.
ubuntu:~$
2-5 コマンド ssh-agent で環境変数を確認。
ubuntu:~$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-TlhOE20539/agent.20539; export SSH_AUTH_SOCK;
SSH_AGENT_PID=20540; export SSH_AGENT_PID;
echo Agent pid 20540;
2-6 ssh-agent -k で停止。
ubuntu:~$ ssh-agent -k
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 1465 killed;
2-7 コマンド eval `ssh-agent` を実行して、環境変数を設定。文字 ` と ‘ の違いに注意してください。
ubuntu:~$ eval `ssh-agent`
Agent pid 20550
ubuntu:~$
2-8 ssh-add を使ってパスフレーズ (passphrase) : (秘密鍵用のパスワード) を追加。
ubuntu:~$ ssh-add
Enter passphrase for /home/xxxx/.ssh/id_rsa:
Identity added: /home/xxxx/.ssh/id_rsa (/home/yoshiaki/.ssh/id_rsa)
ubuntu:~$
2.9 これで ssh、scp、sftp でログインしても パスフレーズ (passphrase) : (秘密鍵用のパスワード) を尋ねられません。
ubuntu:~$ ssh username@remotehost
Last login: Mon xxx x xx:53:59 2010 from xx.xx.xx.xx
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.1-RELEASE-p15 (SAKURA11S) #10: Tue Nov 16 09:48:35 JST 2010
Welcome to FreeBSD!
%
2-10 リモートホスト (さくら側) のファイル authorized_keys のパーミッションは 600 にしてください。
~ $ ssh username@remotehost
Last login: xxx xxx 00 xx:32:00 2010 from xx.xx.xx.xx
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.1-RELEASE-p15 (SAKURA11S) #10: Tue Nov 16 09:48:35 JST 2010
Welcome to FreeBSD!
%cd
%cd .ssh
%ls
authorized_keys
%chmod 600 authorized_keys
%ls -alF
total 10
drwx------ x xxxx xxxx 512 xxx 0 16:54 ./
drwx---r-x xx xxxx xxxx 512 xxx 00 19:53 ../
-rw------- xx xxxx xxxx 819 xxx 0 19:50 authorized_keys
%exit
logout
Connection to remotehost closed.
~ $