2011年06月11日

Tinycoreでsshdを動かす

Tinycoreをサーバにしようと思う人がどれくらいいるのか分からないが、sshdを使えるようにする手順。
使用したのはTinycore 3.6。

1. openssh.tcz をインストール
Apps から検索して入れてもいいし、tce-load -wi openssh.tcz してもよい。必要な他のtczも勝手に入るはず。

2. sshdのための設定
動作に必要な sshd_config を作成して必要なら編集、ホスト鍵を作成する。
tc@box:~$ sudo sh
root@box:/home/tc# cd /usr/local/etc/ssh
root@box:/usr/local/etc/ssh# cp sshd_config.example sshd_config
(※必要であれば sshd_config を編集する)
root@box:/home/tc# /usr/local/etc/init.d/openssh start
Generating public/private rsa key pair.
...(略)
(※一度sshdを実行してホスト鍵を作成しておく)

3. sshdでログインするユーザーを作成
adduser でユーザーを作成する。ログイン名はお好みで。RSA認証だけで使う場合にはパスワードを付ける必要はない。その辺はお好みで。
root@box:/home/tc# adduser usost
Changing password for usost
New password:
Retype password:
Password for usost changed by root

この状態で、/etc/passwd, /etc/shadow にアカウント情報ができるので、メモする。
こんな感じでgrep。
root@box:/home/tc# grep usost /etc/passwd
usost:x:1000:1000:Linux User,,,:/home/usost:/bin/sh
root@box:/home/tc# grep usost /etc/shadow
usost:$1$RPG9zR3i$pxjWO47JkotnvIpfni6Fo/:15136:0:99999:7:::

これを元に、ブート時にユーザーを足すスクリプトを作る。グループは(面倒なので)0にしてあるが、別のものでもいい。sudoersの設定も、必要なら、特定のものだけ許可するようにした方がいいかも。
root@box:/home/tc# vi /opt/userinit.sh
----
#!/bin/sh
# /opt/userinit.sh
# add user on boot.

echo 'usost:x:1000:0:Linux User,,,:/home/usost:/bin/sh' >> /etc/passwd
echo 'usost:$1$RPG9zR3i$pxjWO47JkotnvIpfni6Fo/:15136:0:99999:7:::' >> /etc/shadow
echo 'usost ALL=NOPASSWD: ALL' >> /etc/sudoers
----
root@box:/home/tc# chmod 755 /opt/userinit.sh

4. 自動起動するように設定
ユーザー追加スクリプトと、sshd起動スクリプトを、ブート時に実行するように /opt/bootlocal.sh に書いておく。
root@box:/home/tc# vi /opt/bootlocal.sh
----
#!/bin/sh
# put other system startup commands here

/opt/userinit.sh
/usr/local/etc/init.d/openssh start
----

5. 設定ファイルを保存するようにしておく
このままだと、sshd_configやホスト鍵、作成したユーザー追加スクリプトも忘れてしまうので、保存するように /opt/.filetool.lst に書いておく。
root@box:/home/tc# vi /opt/.filetool.lst

opt/userinit.sh
usr/local/etc/ssh
の2行を追加。


6. Exit でリブート
これで、自動的にsshdが上がり、作ったユーザーでログインできるようになっているはずである。
sshdが上がってないときは、ホスト鍵、sshd_config を忘れていないか(/opt/.filetool.lst)確認。
sshdは上がっているけどログインできない時は、ユーザーが正しく追加されているかどうか確認。



 ついでに、Tinycore 3.6では、カーネルのブートオプションに kmap=jp106 をつけても、キーマップ変更はコンソールだけで、Xのキーマップは変わらないようである。
 Xでもjp106キーマップにするには、kmap.tcz をインストールした上で、/opt/bootlocal.sh にloadkmapを書いておくとよいようだ。合わせると、bootlocal.shはこんな感じ。
tc@box:~$ tce-load -wi kmap.tcz
tc@box:~$ vi /opt/bootlocal.sh
----
#!/bin/sh
# put other system startup commands here
loadkmap < /usr/share/kmap/qwerty/jp106.kmap

/opt/userinit.sh
/usr/local/etc/init.d/openssh start
----

タグ:Tinycore Linux
posted by usoinfo at 12:45 | Comment(1) | 開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんにちは
microCoreLinuxの ssh設定で悩んでいる時、其方のページへ辿り着き、
内容を実行した所、一瞬で TeraTermが繋がり歓喜です。
有難う御座いました。
Posted by 馬の骨 at 2017年08月21日 06:22
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]