Skip to main content

スポンサードリンク

Solaris8 opensshのインストール

Posted in

Solaris 8 では、Sun社からは、sshパッケージが提供されていません。
そこで、Solaris 8 に、openssh-4.3をインストールしました。

以下、インストール方法について説明します。

1.パッチ適用
random patches for Solaris 8を適用します。
以下のパッチをダウンロードします。
CPUタイプによって、いずれかを適用してください。
OEMシステムの場合は、該当のOEM_NOTES ファイルが無い場合は、インストールしないで下さい。
・SPARCの場合 112438-03 SPARC/Solaris 8 patch for /kernel/drv/random
・X86の場合  112439-02 X86/Solaris 8 patch for /kernel/drv/random

2.パッケージのインストール
(1)パッケージのダウンロード
www.sunfreeware.com/indexsparc8.htmlから、必要なパッケージをダウンロードします。

今回は、Solaris8-SPARC用として下記をダウンロードしました。

openssh-4.3p2-sol8-sparc-local.gz
openssl-0.9.8b-sol8-sparc-local.gz
zlib-1.2.3-sol8-sparc-local.gz
libgcc-3.3-sol8-sparc-local.gz (gcc3.3.2がインストールしてある場合は不要です。)
tcp_wrappers-7.6-sol8-sparc-local.gz (オプション:tcp_wrappersの利用を推奨していますが、本記事では、扱いません。)

(2)パッケージのインストール
ダウンロードしたファイルを適当なディレクトリで以下のように解凍します。
 

# gunzip openssh-4.3p2-sol8-sparc-local.gz
# gunzip openssl-0.9.8b-sol8-sparc-local.gz
# gunzip zlib-1.2.3-sol8-sparc-local.gz
# gunzip libgcc-3.3-sol8-sparc-local.gz  (gcc 3.3.2がインストールされていない場合)

オプションについても同様。

 

そして、解凍したパッケージファイルを以下のようにpkgaddコマンドでインストールします。
インストール先は、/usr/localになっています。

# pkgadd -d openssh-4.3p2-sol8-sparc-local
# pkgadd -d openssl-0.9.8b-sol8-sparc-local
# pkgadd -d zlib-1.2.3-sol8-sparc-local
# pkgadd -d libgcc-3.3-sol8-sparc-local (gcc 3.3.2がインストールされていない場合)

オプションについても同様。

 

opensshパッケージには、サーバーとクライアントが同梱されています。
SSHサーバーマシンの場合は、3.サーバー設定を実施します。
SSHクライアントマシンの場合は、4.クライアント設定を実施します。

3.サーバー設定
SSHサーバーマシンの場合は、以下を実施します。
(1)sshd用ユーザの追加

# mkdir /var/empty
# chown root:sys /var/empty
# chmod 755 /var/empty
# groupadd sshd
# useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd

/var/emptyにはファイルが何も存在しないようにします。

 

(2)sshd用鍵の作成
以下のコマンドで、ホスト認証用の鍵を作成します。

# PATH=/usr/local/bin:/usr/local/sbin:$PATH (/usr/local/bin、/usr/local/sbinをPATHに追加します。)
# export PATH
# ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""
# ssh-keygen -t dsa -f /usr/local/etc/ssh_host_dsa_key -N ""
# ssh-keygen -t rsa -f /usr/local/etc/ssh_host_rsa_key -N ""

 

(3)initスクリプトの作成
initスクリプト、/etc/init.d/sshdを作成します。例を下記に示します。
-------------------- start of /etc/init.d/sshd --------------------

#!/bin/sh

 

case "$1" in
'start')
        if [ -x /usr/local/sbin/sshd ]; then
                echo "Starting the secure shell daemon"
                /usr/local/sbin/sshd &
        fi
        ;;

'stop')
        echo "Stopping the secure shell daemon "
        pkill -TERM sshd
        ;;
*)
        echo "Usage: /etc/init.d/sshd { start | stop }"
        ;;
esac

exit 0

-------------------- end of /etc/init.d/sshd --------------------

 

そして、以下のコマンドを実行します。

# chown root /etc/init.d/sshd
# chgrp sys /etc/init.d/sshd
# chmod 555 /etc/init.d/sshd
# ln -s /etc/init.d/sshd /etc/rc2.d/S98sshd

 

(4)設定ファイルの修正
sshdの設定ファイルは、/usr/local/etc/sshd_configになります。
このファイルを適宜、修正します。
私の場合は、以下のように修正しました。

ServerKeyBits 1024 (ホスト認証用鍵のビット長、SSH protocol version 1の場合に使用)
SyslogFacility AUTH (syslogのauthファシリティにログを出力する)
LogLevel INFO (詳細な情報が欲しい場合は、DEBUGにする)
PasswordAuthentication no (プレインテキストによる、パスワード認証を抑止する)

 

なお、上記設定で、syslogを出力するようにしており、これに合わせて、以下を実施します。

# touch /var/adm/sshlog

/etc/syslog.confに下記を追加します。
 LogLevel INFOの場合:

auth.info                      ifdef(`LOGHOST', /var/adm/sshlog, @loghost)

 LogLevel DEBUGの場合:

auth.debug                     ifdef(`LOGHOST', /var/adm/sshlog, @loghost)

 

(5)システムの再起動
システムを再起動し、以下のコマンドで、sshdが実行されていることを確認します。

# ps -Af | grep sshd

 

4.クライアント設定
SSHクライアントマシンの場合は、以下を実施します。
(1)ユーザ鍵の作成
接続先SSHサーバーのプロトコルサポート状況に合わせて、rsa1(rsaプロトコル1)、rsa、dsaの3種の内から必要なものを作成します。
なお、パスフレーズは、通常のUNIXログインパスワードとは別のもので、独自に設定可能です。
sshでRAS/DSAを利用して接続する場合は、このパスフレーズを入力して認証されることになります。

・rsa1

$ ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/export/home/testuser/.ssh/identity):
Created directory '/export/home/testuser/.ssh'.
Enter passphrase (empty for no passphrase):(ここで、パスフレーズを入力します。)
Enter same passphrase again:(パスフレーズを再入力します。)
Your identification has been saved in /export/home/testuser/.ssh/identity.
Your public key has been saved in /export/home/testuser/.ssh/identity.pub.
The key fingerprint is:
30:66:09:a6:08:79:c5:b4:90:08:26:0b:8c:10:a1:66 testuser@myhost

 

・rsa

$ ssh-keygen -b 1024 -t rsa (鍵のビット長を1024に指定しています)
Generating public/private rsa key pair.
Enter file in which to save the key (/export/home/testuser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):(ここで、パスフレーズを入力します。)
Enter same passphrase again:(パスフレーズを再入力します。)
Your identification has been saved in /export/home/testuser/.ssh/id_rsa.
Your public key has been saved in /export/home/testuser/.ssh/id_rsa.pub.
The key fingerprint is:
c1:78:9f:03:88:af:9b:e7:51:7a:59:ba:bc:c9:e1:35 testuser@myhost

 

・dsa

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/export/home/testuser/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):(ここで、パスフレーズを入力します。)
Enter same passphrase again:(パスフレーズを再入力します。)
Your identification has been saved in /export/home/testuser/.ssh/id_dsa.
Your public key has been saved in /export/home/testuser/.ssh/id_dsa.pub.
The key fingerprint is:
af:3d:fd:f8:37:e3:3d:c8:33:bd:d7:51:54:46:7f:bb testuser@myhost

 

この状態でディレクトリを表示させると、以下のようになります。

$ ls -ld ~/.ssh
drwx------   2 testuser staff        512  7月 13日  14:10 /export/home/testuser/.ssh
$ ls -l ~/.ssh
-rw-------   1 testuser staff        736  7月 13日  13:24 id_dsa
-rw-r--r--   1 testuser staff        603  7月 13日  13:24 id_dsa.pub
-rw-------   1 testuser staff        951  7月 13日  13:23 id_rsa
-rw-r--r--   1 testuser staff        223  7月 13日  13:23 id_rsa.pub
-rw-------   1 testuser staff        976  7月 13日  13:21 identity
-rw-r--r--   1 testuser staff        640  7月 13日  13:21 identity.pub

 

(2)公開鍵をサーバーに設定
まず、クライアント側で、上記(1)で作成した公開鍵を1個のファイルにまとめます。
identity.pub、id_rsa.pub、id_dsa.pubの各ファイルが公開鍵ファイルです。
ここでは、3種類の公開鍵を1個のファイルにまとめていますが、必要な公開鍵のみ処理していただければOKです。

$ cat identity.pub >> authorized_keys
$ cat id_dsa.pub >> authorized_keys
$ cat id_dsa.pub >> authorized_keys

 

次に、サーバー側です。
まず、ユーザディレクトリに.sshというディレクトリを作成し、パーミッションを設定します。

$ cd ~
$ mkdir .ssh
$ chmod 0700 .ssh

次に、クライアント側で作成したauthorized_keysファイルをコピーし、パーミッションを設定します。

$ chmod 0600 .ssh/authorized_keys

 

5.sshの実行
同一ホストにsshサーバーとクライアントの設定を行い、自分自身にsshで接続してみます。

$ PATH=/usr/local/bin:/usr/local/sbin:$PATH
$ export PATH
$ ssh myhost
The authenticity of host 'myhost (192.168.100.222)' can't be established.
RSA key fingerprint is 9f:4b:54:ee:3f:3a:0f:c3:fb:ef:2a:4c:48:4a:4c:dd.
Are you sure you want to continue connecting (yes/no)? yes 
(ここまでは、初めての接続の場合のみ出力されます。)
Enter passphrase for key '/export/home/snakayam/.ssh/id_rsa':(ここで、ユーザ鍵作成時のパスフレーズを入力します。)
Last login: Wed Jul 12 18:17:37 2006 from 192168.100.18
Sun Microsystems Inc.   SunOS 5.8       Generic Patch   October 2001
Sun Microsystems Inc.   SunOS 5.8       Generic Patch   October 2001
$

(以上で、接続されました。)

 

参考記事
http://www.sunfreeware.com/openssh8.html
http://www.scl.kyoto-u.ac.jp/scl/usage/SSH/index.html