Zaurus SL-C760 に openSSH をインストール

●インストール

openSSHのパッケージをダウンロードし、解凍後インストール

http://www.killefiz.de/zaurus/showdetail.php?app=1035
・openssh-server
・openssh-addon
・openssh-client

●設定ファイルの編集

sshd_config を編集

$ vi /etc/ssh/sshd_config
Protocol 1,2
HostKey /etc/ssh/ssh_host_key
ServerKeyBits 1024
PermitRootLogin no
X11Forwarding yes
X11DisplayOffset 10

デフォルトからの変更点は以下のとおり。

# Protocol 2
↓↓↓
Protocol 1,2

#HostKey /etc/ssh/ssh_host_key
↓↓↓
HostKey /etc/ssh/ssh_host_key

#ServerKeyBits 768
↓↓↓
ServerKeyBits 1024

PermitRootLogin yes
↓↓↓
PermitRootLogin no

#X11Forwarding no
#X11DisplayOffset 10
↓↓↓
X11Forwarding yes
X11DisplayOffset 10

以下のコマンドで sshd がちゃんと起動するか確認しておく

$ /usr/sbin/sshd -f /etc/ssh/sshd_config

<メモ>
上記のコマンドで以下のエラーが発生した。

"Disabling protocol version 1. Could not load host key"

原因は HostKey /etc/ssh/ssh_host_key がコメントされていたためだった。


inetd.conf を編集して TcpWrapperで起動するようにすることによりアクセス制御しやすくしとく。

$ vi /etc/inetd.conf
#ssh    stream  tcp     nowait  root    /usr/sbin/sshd sshd -i -q -f /etc/ssh/ss
↓↓↓
ssh     stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/sshd -i -q -f /etc/ssh/sshd_config

また ssh を導入すれば telnetftp は不要と思われるので、inetd.conf からそれらをコメントアウトしておく。
(ftpはツールによって sftp に対応していない場合もあるので残しておいてもよいかも)

hosts.allow へ以下の行を追加して、sshdへの接続可能ホストを定義する。

$ vi /etc/hosts.allow
sshd:           192.168.0.0/255.255.255.0

一通り設定したら inetd を再起動

$ killall -HUP inetd

●ログインユーザの追加

SSHでログインするためのユーザを追加、しようとすると・・・

$ adduser username
Tinylogin v1.2 (2002.10.01-23:15+0000) multi-call binary

Usage: adduser [OPTIONS] 

エラーが発生し追加することができない。
adduserコマンドのバージョン差異のせいかも。
しょうがないので手動で passwd ファイルに追加。

$ vi /etc/passwd

username:x:100:100:userfullname:/home/username:/bin/sh

shadow ファイルにも追加

$ vi /etc/shadow

username:*:10933:0:99999:7:::

passwd コマンドでパスワードを変更

$ passwd username
Changing password for username
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
Enter new password:
Re-enter new password:
Password changed.

shadow ファイルが更新されている

$ cat /etc/shadow
username:2C/abCDEFGHIJ:10933:0:99999:7:::

ホームディレクトリを作成

$ mkdir /home/username
$ chown username:users /home/username

ログインできることを確認する

$ su - username

●鍵のジェネレート

以降は作成したユーザで行う

自分の鍵ペアを持っていない場合はジェネレートする。(今回は Protocol1 で生成)

$ ssh-keygen -b 1024 -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/username/.ssh/identity):←デフォルト
Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase):                    ←パスフェーズを入力
Enter same passphrase again:                                   ←確認のパスフェーズを入力
Your identification has been saved in /home/username/.ssh/identity.
Your public key has been saved in /home/username/.ssh/identity.pub.
The key fingerprint is:
99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99 username@zaurus

以下のように公開鍵、秘密鍵が作成される。

$ cd ~/.ssh
$ ls -l
 -rw-------    1 username     users         526 Jan  4 02:39 identity
 -rw-r--r--    1 username     users         330 Jan  4 02:39 identity.pub

RSA認証できるように authorized_keys を作成する。
作成したあとは他人が参照できないようにしておく。

$ cat identity.pub >> authorized_keys
$ chmod 0600 authorized_keys