設定のポイント/RSA承認のみで設定するパラメータ変更 |
default |
変
更値 |
||
ListenAddress {IPアドレス} | :: |
0.0.0.0 |
接
続先の
制限。複数の設定が可能。0.0.0.0 と記述するとIPv4で制限なし、:: と記述するとIPv6&v4で制限なしで待機する。 |
AllowUsers {ユーザ名} | -- |
{user} |
使
用でき
るユーザを制限する。制限しない場合は無記述。 |
AllowTcpForwarding {yes/no} | no | yes |
ポー
ト
フォワードの設定。ポートフォワードを許可する場合は yes。 |
PasswordAuthentication {yes/no} | yes | no | UNIX パスワードでのログインの許可(yes)/禁止(no)。 |
PermitRootLogin {yes/no} |
no |
no |
root
でのログインの許可(yes)/禁止(no)。 |
PAMAuthenticationViaKBDInt
{yes/no} |
yes |
no |
PAM
の
チャレンジ・レスポンス認証を許可するかどうか指定。 PasswordAuthentication (パスワード認証) が禁止されているかどうかにかかわらず、パスワード認証も許可される。 |
RSAAuthentication
{yes/no} |
yes |
yes |
純
粋な
RSA 認証を許可するかどうかを指定。 |
ChallengeResponseAuthentication {yes/no} | -- |
-- |
チャ
レン
ジ・レスポンス認証を許可するかどうか指定。 |
GSSAPIAuthentication {yes/no} | -- |
-- |
GSSAPI
ベースのユーザ認証を使用するかどうかを指定。 これはデフォルトでは no になっています。 注意: この設定項目はプロトコル バージョン 2 のみに適用。 |
KbdInteractiveAuthentication {yes/no} | -- |
-- |
旧
オプ
ション。(yesだと攻撃対象になる可能性がある) |
(注) {yes/no}赤字は推奨設定値(RAS認証のみの場合の値)。 defaultはインストール直後の値。 -- は値が設定されていない(デフォルト値)。 |
設
定ファイル: |
/etc/ssh/sshd_config |
設 定: | X11ポートフォワードyes, RAS
認証のみ, ポートフォワー
ドyes, ログ出力AUTH/INFO |
|
インポート用ファイルの作成 インポートファイルは一時的に作成するファイルなのでファイル名は適当で良い。登録後は削除しても構わない。 (下記例では個人的嗜好でインポートファイルは /etc/inet/.smf.importsに残している) |
# cd
/etc/inet/.smf.imports # vi inetd.conf.sshd |
下記をコピーペースト(文字間タブで記述) |
ssh stream tcp nowait root /usr/lib/ssh/sshd /usr/lib/ssh/sshd -i |
/etc/hosts.allowファイルに sshd接続を許可するIPアドレスを記述。 (参考:hosts.allow/deny 設定) |
# cd
/etc # vi hosts.allow |
... sshd: {許可IPアドレス} ... |
デフォルトのsshdを停止およびdisableにする。 FMRI: svc:/network/ssh/tcp:default |
# svcadm
disable network/ssh # svcs -a | grep ssh disabled 18:13:34 svc:/network/ssh/tcp:default |
SMF/inetdにインポートファイルより登録 |
# inetconv -i /etc/inet/.smf.imports/inetd.conf.sshd |
登録確認 |
# inetadm | grep ssh enabled online svc:/network/ssh/tcp:default # svcs -a | grep ssh disabled 18:13:34 svc:/network/ssh/tcp:default online 18:13:35 svc:/network/ssh:default |
OpenSSHサーバおよびクライアントを通過される設定 |
|
||
|
【注意】 (1) {I/F}はインターフェース名。ifconfig -a コマンドで調べることが出来る。(AcerPower1000の場合は nge0) (2) {IP-addr} はサーバまたはクライアントマシンのIPアドレスを指定する。 |
【備考】 OpenSSHにはssh用のポート(標準22番)を経由して任意のポート同士を接続することが可能なポートフォワード機能が備わっている。ファイヤーウォールをバイパスさせたい場合などにも利用できる。 X11(X Windows)の使用ポートなどはオプションおよび設定ファイルでポートフォワードが指定出来る様になっている。X11(X Windows)のポートを IP FilterでOpenにする必要はない。 sshサーバ設定ファイル sshd_configで以下の設定にしておけばポートフォワード機能が使える。
|
アルゴリズム |
SSH Ver |
ファイル |
rsa1 鍵ペア | SSH1 |
$HOME/.ssh/identity
(秘密キー) $HOME/.ssh/identity.pub (公開キー) |
rsa 鍵ペア | SSH2 | $HOME/.ssh/id_rsa
(秘密キー) $HOME/.ssh/id_rsa.pub (公開キー) |
dsa 鍵ペア | SSH2 | $HOME/.ssh/id_dsa
(秘密キー) $HOME/.ssh/id_dsa.pub (公開キー) |
rsa1/rsa/dsaの3セットの暗号キーを作成する。 コマンド形式: /usr/bin/ssh-keygen -t {アルゴリズム} 実行するとパスワードを問われるので任意のパスワードを2回入力。 (*)このときパスワードはログインパスワードとは別のものを設定する。 |
$ cd $HOME $ ssh-keygen -t rsa1 Generating public/private rsa1 key pair. Enter file in which to save the key ($HOME/.ssh/identity): Created directory '$HOME/.ssh'. Enter passphrase (empty for no passphrase): {SSH用パスワード} Enter same passphrase again: {SSH用パスワード(確認)} Your identification has been saved in $HOME/.ssh/identity. Your public key has been saved in $HOME/.ssh/identity.pub. The key fingerprint is: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX XXX@SunWn1 $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key ($HOME/.ssh/id_rsa): ...同上のメッセージが表示(省略) ... $ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key ($HOME/.ssh/id_dsa): ...同上のメッセージが表示(省略) ... |
公開キー $HOME/.ssh/identity.pub $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub |
$HOME/.ssh/authorized_keys ファイルに公開キーの内容を追加記述する。 (authorized_keysが無い場合は新規作成、ある場合は末尾に追加) |
$ cd $HOME/.ssh $ cat identity.pub >> $HOME/.ssh/authorized_keys $ cat id_rsa.pub >> $HOME/.ssh/authorized_keys $ cat id_dsa.pub >> $HOME/.ssh/authorized_keys $ chmod 644 authorized_keys |
【注意】 サーバー側には.sshディレクトリが無い場合もあるので作成する。パーミションがローカルに制限されていなければ接続を拒否されるので確認を行う。 .sshディレクトリは パーミション値 700 (rwx -- --) 各秘密キーは パーミション値 600 (rw- --- ---) |
/etc/ssh/ssh_config | クライアントマシン全体の設定 |
$HOME/.ssh/config | ユーザ毎の設定 |
$HOME/.ssh/config |
# Copyright (c) 2001
by
Sun Microsystems, Inc. # All rights reserved. ...(省略)... # Example (matches compiled in defaults): # # Host * # ForwardAgent no # ForwardX11 no ForwardX11 yes # PubkeyAuthentication yes # PasswordAuthentication yes # FallBackToRsh no # UseRsh no # BatchMode no # CheckHostIP yes # StrictHostKeyChecking ask # EscapeChar ~ IdentityFile ~/.ssh/identity IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/id_dsa |
コマンド形式: /usr/bin/ssh [-1|-2] [-X] [-l ユーザ名] {SSHサーバ名 or IPアドレス} [コマンド] -1: SSH Ver1プロトコルで接続 -2: SSH Ver2プロトコルで接続 -X: X11ポートフォワードを有効 -l: ログインユーザ指定 |
Solaris10ではSSH Ver2を使用。 Xウインドウのフォワードを有効にする。 |
$ /usr/bin/ssh -2 -X -l {user名}
{SSHサーバ名} |
Solaris10ではSSH Ver2を使用。 Xウインドウのフォワードを有効にする。 |
$ /usr/bin/ssh -2 -X -l {user名}
{SSHサーバ名} [コマンド] |
ssh_agentコマンド ssh-agentコマンドをログイン時に起動すれば ssh-agentの環境変数と /tmpにパスフレーズを格納するファイルが作成される。ssh_addコマンドでパスワードが入力された後はこのエージェントがパスワード入力を省略してくれる。 |
ssh_addコマンド ssh-addコマンドは上記ssh_agentで作成された環境変数とファイルにパスフレーズを保持する。 以降はSSHでパスフレーズの入力は省略できる様になる。 ssh-addコマンドでSSHのパスフレーズ済みかどうかを確認するには "-l" オプションで表示される。 |
ファイル
$HOME/.dtprofile ファイル末に以下を追加。 |
...(省略)... # SSH_AGENT start # PSS=`/usr/bin/ps -ef |/usr/bin/grep /usr/bin/ssh-agent |/usr/bin/grep {user名} |/usr/bin/grep -v grep` if [ ! -z "$PSS" ]; then PID=`/usr/bin/echo $PSS |/usr/bin/awk '{ print $2 }'` if [ ! -z "$PID" ]; then echo "kill pid=$PID" /usr/bin/kill $PID fi fi unset SSH_AUTH_PID unset SSH_AGENT_SOCK eval `/usr/bin/ssh-agent` |
ssh-agentにパスフレーズを設定 |
# /usr/bin/ssh-add $HOME/.ssh/id_rsa >> パスフレーズ入力 |
パスフレーズを設定済みかをチェックする場合 |
# /usr/bin/ssh-add -l |
スクリプトファイル: run_ssh.sh (1) ssh-agentに対するパスフレーズが未入力の場合、パスフレーズ入力画面になる。 (2) -win をオプションで指定するとポップアップウインドウでパスフレーズ入力画面が表示される(アイコン起動用)。 (3) 引数にプログラムを指定すると sshが起動される。引数がない場合はパスワードのみの設定。 |
#!/bin/bash # SSHを使ったプログラム起動 # usage: run_ssh.sh [-win|-force] {プログラム} ID_FILE="$HOME/.ssh/id_rsa" TERM_PROG="/usr/dt/bin/dtterm -geometry 77x20+400+200 -title 'OpenSSHパスワード入力'" CHECK_AGENT=`/usr/bin/ssh-add -l |/usr/bin/grep $ID_FILE` if [ -z "$CHECK_AGENT" ]; then if [ "$1" = "-win" ]; then $TERM_PROG -e /usr/bin/ssh-add $ID_FILE shift else /usr/bin/ssh-add $ID_FILE fi elif [ "$1" = "-force" ]; then $TERM_PROG -e /usr/bin/ssh-add $ID_FILE shift fi # プログラム指定がある場合は起動する if [ ! -z "$1" ]; then /usr/bin/ssh -2 -X -l $USER $* & fi exit 0 |
このスクリプトを使用して run_ssh.sh -win {プログラム} で指定すればアイコン登録出来る。 |