■Android3.0タブレットで公開鍵を使ってssh
ASUS Eee Pad TF101 Transformerで自宅サーバに公開鍵暗号方式でsshアクセスした設定のメモ。キーボードって素晴らしい。とはいえ、いろいろと不便なことも。その辺の覚書。
■ConnectBot
・マーケットからConnectBotをインストール。
・起動してメニューボタンを押して公開鍵管理を選ぶ
・もう一度メニューボタンを押して生成を選ぶ
インポートの場合は事前にSDカードに鍵を用意しておき選択するだけ
・鍵の名前を入力し、必要な設定を行う
起動時に鍵をロード、使用時に確認するはチェックをオススメ
・ランダマイズ用に表示される領域をタッチして鍵を生成する
・生成された鍵に名前がついてリスト表示されるので鍵マークが緑なのを確認
赤のロックされた鍵マークの場合は使用できない状態という意味
・戻るボタンで接続画面に戻す
・下部メニューからsshを選択し、user@hostname:portの形式で入力して改行
・これで問題なければ接続する(最初は確認ダイアログが出る)
・二回目以降は接続画面で前回接続の表示が出るのでそこから選択でOK
自宅のCentOS5.6サーバにsshで接続したところ、ConnectBotでは接続以降英語キーボード配列での入力になるので注意。日本語キーボードを使っているとやや不便を感じる可能性あり。Tabキーによるコマンド補完も機能せず。またShift+数字キーが全てファンクション扱いになる(Shift+1キーが!でなく<F1>となる)ため、記号入力に若干の工夫が必要。パイプ(|)などはShift+バックスラッシュで入力できる。CtrlやESCは画面をクリックすると左下に表示されるので、指かマウスポインタでクリックすると入力待機状態になる。一応Android3.0でも大きな問題なく動作してくれている。若干使いにくいところではあるが、とりあえず利用可能なのでOKとする。設定などで使い勝手を向上できそうな気はするが、エミュレーション設定などでは変化がなく今のところ打つ手無し。あくまで緊急避難用なので深く追求しないかも。
android, security, ssh, tablet, TF101
![](http://blog.isnext.net/issy/wp-content/plugins/wp-postratings/images/loading.gif)
Loading...
■公開鍵認証方式でsshを利用する
sshdは攻撃されやすいので、できるだけ標準状態からport及び設定を見直すことを推奨。ここではパスワードを使わず公開鍵でsshを利用する。ここではCentOS5サーバの初期状態から設定追加する状況を想定した手順を書いておく。
1)自マシンで鍵を作成する(MacOSXをクライアントとする)
[code]$ ssh-keygen -t rsa -C “myaddress@example.com”[/code]
パスワード入力時にエンターを押すことでパスワード不要の鍵が作成可能
作成が完了すると以下に必要ファイルが作成される
~/.ssh/id_rsa(秘密鍵)
~/.ssh/id_rsa.pub(公開鍵)
上記はRSA鍵の場合。DSA鍵を作成する時は以下。
DSAではid_dsa,id_dsa.pubのファイルが作成される。
[code]$ ssh-keygen -t dsa -C “myaddress@example.com”[/code]
自アドレスを入力するのは後からキーの持ち主を判別するため。
実際に入力するテキストはなんでもOK。
2)公開鍵をサーバに送信する
リモートサーバにid_rsa.pubを送っておく
[code]$ scp ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:/tmp[/code]
3)rootでサーバにログインしてsshdの設定を変更する
[code]# vi /etc/ssh/sshd_config[/code]
以下の3行を修正
port 10022
PermitEmptyPasswords no
PasswordAuthentication no
4)ssh用アカウント「remoteuser」を作成して公開鍵を登録する
[code] # adduser remoteuser
# passwd remoteuser ←パスワード設定する
# su remoteuser ←ユーザを変更する
$ cd ~
$ mkdir .ssh
$ cat /tmp/id_rsa.pub > .ssh/authorized_keys
$ chmod 0600 .ssh/authorized_keys
$ chmod 0700 .ssh
$ exit[/code]
5)iptablesを修正してsshdを再起動する
[code]# vi /etc/sysconfig/iptables[/code]
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 10022 -j ACCEPT 行追加
[code] # service iptables restart
# service sshd restart[/code]
6)クライアントからsshでアクセスして確認
[code]$ ssh -p 10022 remoteuser@xxx.xxx.xxx.xxx[/code]
うまくいかない時は -vを付けて確認
[code]$ ssh -v -p 10022 remoteuser@xxx.xxx.xxx.xxx[/code]
CentOS5では以下の行はコメントアウトのままで問題ないので外さなくてOK。
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
centos, security, ssh
![](http://blog.isnext.net/issy/wp-content/plugins/wp-postratings/images/loading.gif)
Loading...