Kobo: sshパスワード認証設定
前回の記事について、Koboのsshのパスワードの設定、telnetの無効化の方法を説明してほしいという要望があったので。
これは、mobilereadの"Yet another telnet/sshd & misc tools package..."スレッドのツールを使った場合の説明。
http://www.mobileread.com/forums/showthread.php?t=254214
トップページにこのツール固有の設定については説明がある。
作者はkindleのjailbreakパッケージを作っている人
http://www.mobileread.com/forums/showthread.php?t=225030
説明はLinuxでの操作になる。
Macはよく知らないが、ひょっとしたら似たようなものかもしれない。
Windowsでのやり方はよくわからないので、Windowsのツールにあわせて適宜読み替えて。
以下の説明は、上記のツールインスール済みで、パスワードなしでtelnetとsshでKoboにログインできていることを前提にしている。
またファイルの編集には、改行コードLF(Unix式)にできるエディタを。
手順は
1. PCでsshの公開鍵を作成(パスワードの設定)
2. 公開鍵をKoboの/usr/local/niluje/usbnet/etc/authorized_keys というファイルに書きこんで登録
3. sshの公開鍵認証の設定(パスワードなしログイン無効化)、telnetをストップ
これはstuff-daemons.shというファイルを書き換えるだけよい。
ターミナルのコマンド操作がどの程度できるかわからないので、どこまで説明したものか。
知っている人には冗長な説明になる。
では、
◎公開鍵の作成
ていねいな解説はネットにいくらでもあるので、要点のみ。
ターミナルで次のコマンド
ssh-keygen -t rsa
パスワード入力を求められる(2回)
・ホームディレクトリに、.sshというフォルダができ、その中に
id_rsa
id_ras.pub
というファイルができている。
id_rasa.pubが公開鍵。この内容をKoboに登録する。
◎公開鍵(id_rsa.pub)の内容をKobo端末に登録
登録する場所は、
/usr/local/niluje/usbnet/etc/authorized_keys というファイル
手順
scpで公開鍵をKoboに転送しようとしたら、なぜかうまくいかなかったので、以下のようにした。
1. KoboをUSBでPCに接続。接続したKoboに公開鍵(id_rsa.pub)をコピー。場所はKoboドライブの一番上に。
2. 以降はssh/telnetでKoboにログインして作業
ssh root@xxx.xxx.xx.xx (xxx.はKoboのIPアドレス)
ログインしたら、次のようにコマンド
cd /mnt/onboard (id_rsa.pubをコピーした場所に移動)
ls id_rsa.pub (そこにid_rsa.pbuがあるか確認)
cat id_rsa.pub >> /usr/local/niluje/usbnet/etc/authorized_keys (書き込み)
rm id_rsa.pub (id_rsa.pubを削除)
exit (ログアウト)
3. 公開鍵作成時に設定したパスワードでログインできるか確認
ssh root@xxx.xxx.xx.xx
大丈夫だったら次へ。
◎sshの公開鍵認証の設定(パスワードなしのログイン禁止)、telnetをストップ
これらはすべて、/usr/local/stuff/bin/stuff-daemons.sh で設定する。エディタで編集。
一度にやってミスからsshでもtelnetでもログインできなくなったら大変なので、面倒だが一つずつ。
◯sshの公開鍵認証の設定(パスワードなしではログインできなくする)
/usr/local/stuff/bin/stuff-daemons.shから次の行を探す。
## NOTE: Comment me out if you want dropbear to actually check passwords
SSHD_OPTS="${SSHD_OPTS} -n"
## NOTE: Uncomment if you want to limit drobear to shared-key auth only
#SSHD_OPTS="${SSHD_OPTS} -s"
SSHD_OPTSの行頭#の有無を入れ替えて、下の -s オプションのほうを有効にする。
## NOTE: Comment me out if you want dropbear to actually check passwords
#SSHD_OPTS="${SSHD_OPTS} -n"
## NOTE: Uncomment if you want to limit drobear to shared-key auth only
SSHD_OPTS="${SSHD_OPTS} -s"
編集の仕方は次のどれかで。
1) Koboにログインして、エディタのviで直接stuff-daemons.shを書き換える。が、viを使ったことがない人はやめたほうがいい。直感的に操作できる代物ではないので。
ssh root@xxx.xxx.xx.xx
cp /usr/local/stuff/bin/stuff-daemons.sh /usr/local/stuff/bin/stuff-daemons.sh.orig(バックアップをとる)
vi /usr/local/stuff/bin/stuff-daemons.sh (上記のように書き換え)
reboot; exit (再起動、ログアウト)
2) scpでstuff-daemons.shをPCにコピー、PCで編集してからKoboに戻す。(scpでwarningが出たが、大丈夫だろう)
scp root@xxx.xxx.xx.xx:/usr/local/stuff/bin/stuff-daemons.sh ./
stuf-daemon.shのバックアップを取ってからPCで編集。
終わったらまたKoboに戻して、再起動。
scp stuff-daemon.sh root@xxx.xxx.xx.xx:/usr/local/stuff/bin/
ssh root@xxx.xxx.xx.xx reboot
再起動は電源スイッチでもかまわない。
3) scpがうまくいかないなら、stuff-daemons.shをUSB接続でPCからアクセスできる場所(/mnt/onboard以下)にコピーして、PCで編集する。
ssh root@xxx.xxx.xx.xx
cp /usr/local/stuff/bin/stuff-daemons.sh /mnt/onboard/
exit
USBで接続してPCで、stuff-daemons.shを上記のように編集。終わったらまた sshでログインして、元の場所に戻す。
ssh root@xxx.xxx.xx.xx
mv /mnt/onboard/stuff-daemon.sh /usr/local/stuff/bin/
reboot; exit
sshで接続、パスワードでログインできるか確認。
OKだったら、次にパスワードなしでログインしてみて、接続拒否されるか確認。
Permission denied (publickey) になるはず。
ここまでできたら、最後に
◯telnetを止める
編集方法はさっきと同じで、/usr/local/stuff/bin/stuff-daemons.shを書き換える。
変更するのは次の箇所:
# Start our own inetd for telnetd/ftpd support
## NOTE: Comment me out if you intend to use open/public WiFi!
${STUFF_BUSYBOX} start-stop-daemon -m -q -p ${INETD_PID} -x ${STUFF_BUSYBOX} -S -b -- ${INETD_OPTS}
最後の${STUFF_BUSYBOX}...{INETD_PID}...の行頭に#をつけて無効にする。
# Start our own inetd for telnetd/ftpd support
## NOTE: Comment me out if you intend to use open/public WiFi!
#{STUFF_BUSYBOX} start-stop-daemon -m -q -p ${INETD_PID} -x ${STUFF_BUSYBOX} -S -b -- ${INETD_OPTS}
最後にKoboを再起動して、設定の変更を反映させる。
確認してみる。
telnetでアクセスしてみて、接続拒否されたらOK。
telnet: Unable to connect to remote host: Connection refused
以上で、sshで設定したパスワード以外ではログインできなくなったはず。
| 固定リンク
| コメント (5)
| トラックバック (0)