【Ubuntu 12.04,Android】Androidタブレット(TF201)でConnectBotを使用して、Ubuntu 12.04にsshアクセスする [ubuntu]
この前、Androidタブレット(ASUS TF201)を購入しました。せっかくなので、TF201からsshでUbuntu 12.04にリモート接続できないかな?と思ってやってみました。
<ASUS TF201(クライアント側)>
ASUS TF201の方で使用したクライアントソフトはConnectBotです。
https://play.google.com/store/apps/details?id=org.connectbot
1) 暗号キーの設定
ConnectBotを開くと下図のような画面のはずです。(一番上のリストは無いはず)
ここでメニューボタン?(上記スクリーンショットの水色に光ってるアプリケーションの履歴ボタンの右側)を押すと下図のようになります。
ここで、「公開鍵管理」を押します。すると下図になります。(下図とは違ってリストにはまだ何も無いはずです。)
ここでメニューボタンをまた押すと下図になります。
ここで、生成ボタンを押すと下図になるので公開鍵を生成します。
この画面の後に、乱数を発生させるためか「ランダムにタップ」を行います。そうすると、公開鍵管理のリストに表示されます。
2) 公開鍵をホストに移す
今度は下のように一覧に出ているはずなので(鍵のマークはパスワードをいれると緑になります)、リストの項目をタッチ(長押し)します。
すると下図がでます。
ここで公開鍵をコピーを押します。そうすると、コピーバッファーに保存されます。(私はここで何処かにファイルができるのだと思いこんでいたので、何も起こらないので「あれ?」と思ってしまいました。)
あとは、適当なファイルを作ってペーストして、そのファイルをサーバー側に移すなり、私がしたようにメールに貼り付けてサーバーに送ります。
< Ubuntu 12.04(sshサーバー側) >
1) インストール
下記のコマンドでインストールです。
sudo apt-get install openssh-server
設定ファイルは/etc/ssh/sshd_config ですので編集してください。 詳細な設定は「ubuntu ssh 設定」とかで検索すれば出てきますので基本的には省略します。ただ、どのサイトを見ても下記(rootでのログインを不可にする)は設定しています。
PermitRootLogin no
また、いくつか設定していて他のサイトに記述してある以外のことについて追記しておきます。
まず、sshd(ssdサーバー)のリスタートや停止の仕方ですが、私はそれぞれ下記のコマンドで行いました。
リスタート :
sudo service ssh restart
スタート :
sudo service ssh start
ストップ :
sudo service ssh stop
状態をみる :
sudo service ssh status
それから、 試しにssh-keygen -t rsaを動かした時に、ホームディレクトリの下にsshの暗号キーを保存するディレクトリ(~/.ssh)とそこに保存されたファイルの所有権がrootになってしまいました。(sudo使って動かしてしまったのかな〜??)
なので、もし同じようになってしまったらchownコマンドで所有権を自分にしてください。ls -alにすると下記のようになります。
precise@pangolin:~$ ls -al | grep .ssh/
drwx------ 2 precise precise 4096 5月 19 04:29 .ssh/
precise@pangolin:~/.ssh$ ls -al
合計 12
drwx------ 2 precise precise 4096 5月 19 04:29 ./
drwxr-xr-x 90 precise precise 4096 5月 20 01:39 ../
-rw------- 1 precise precise 224 5月 19 04:28 authorized_keys
※sshdはrootユーザーで動いているのに、ログインユーザーしか見れなくして大丈夫かな??と思いましたが、これで動きました。という事は、sshdは直接このディレクトリやファイルを参照していないのですね。。
2) 暗号キーの設定
前述のlsの出力にあるauthorized_keysに記述します。
普通は下記の様に行うようです。
cat [暗号キーファイル] >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ただ、私の場合はconnectbotで生成した暗号キーをメールで送ったので、
vi ~/.ssh/authorized_keys
としてエディタで開いて、そこにメールに貼りつけた暗号キーをコピー&ペースとしてセーブしました。その後、
chmod 600 ~/.ssh/authorized_keys
をしました。(セキュリティー的にはネットワークを使わず、USBメモリやSDカードで暗号キーを移した方がベターなのかな。私は家のLAN内だけの実験ですので、面倒なのでメールにしました。)
これでサーバー側の設定はおわりです。
< 実際に使う >
1) 一度目
まだ一度もアクセスしたことがない場合は、上手のsshとなっているプルダウンメニューの横の欄に「ユーザー名@ホスト:ポート」と入れてアクセスします。
1度目はサーバー側のパスワードが要求されると思います。
2) 2度目から
一度サーバー側とアクセスを行うと、上図のようにアクセスしたリストが出ると思います。
ここをタップすれば、すぐに下図のように入れるはずです。ただ、下図はメニューボタンを押した状態です。
TF201だとフォントが小さすぎると思うので、上図の一番右の「サイズ強制」を押して、80x25くらいにすると良いとおもいます。
それと、ソフトウェアキーボードの場合は英語にしないとうまく入りませんでした。
TF201をキーボードドックと繋げたときは何もせずにハードウェアキーボードが使えました。(昔のダム端末みたい。)
試しに sudo shutdown -h now と入れたら、リモートのUbuntuがシャットダウンしました。(当たり前か・・・)
これで説明は終わりです。
実際に自宅でsshサーバーを起動しておいて、外出先からアクセスするなどと行った運用をするなら、セキュリティを考慮してsshサーバーの設定をしてください。(私自身はサーバーを運用した経験はありません。)
※すべてのTF201のスクリーンショットでアプリケーションの履歴ボタンが水色に光っているのは、このボタンの長押しでスクリーンショットを撮っているためです。(TF201とかASUSだけの機能かな??)
←アンドロイドのプログラミング入門
2011/5/26発売予定らしい。
アンドロイドのプログラムは見たこともありません。
難しいのかな〜
いずれにしても、作る暇も気力もアイディアもない。
コメント 0