[HOME] [研究室] [github] [twitter] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

パッケージ: openssh (Secure SHell)

Important: チェックポイント

□ ターゲット     /usr/pkgsrc/security/openssh
□ /etc/rc.conf    sshd=yes
□ 設定ファイル    /usr/pkg/etc/ssh/sshd_config
□ ポート番号     22/tcp
□ 動作の確認     psとってsshdが動いている。22/tcpが開いている。

注意: # や % の意味が分からない人は 用語 を参照してください。

インストール

% su root
# cd /usr/pkgsrc/security/openssh
# make install

Caution

2011/04 以降: make packege ではなく make install を使ってください。 事情の詳細は the Section called 2011 春: make install および make package の動作が変わる 節を参照してください。

OS 起動時に sshd も起動するように設定するには、次のようにしてください。

# cp -p /usr/pkg/share/examples/rc.d/sshd /etc/rc.d/
# echo sshd=yes >> /etc/rc.conf

きちんと、 設定ファイル /usr/pkg/etc/ssh/sshd_config を編集してください(後述)。

動作確認

テスト(1): sshd は起動するか?

# /etc/rc.d/sshd start
動いていることを確認してください
# ps auxww | grep sshd
# fstat    | grep sshd
# netstat -na | grep 22
注: 22 はポート番号。 ポート番号は設定次第なので仕様書に書いてある番号に読み替えてください。 fstat や netstat で表示される「*:22」は 「全インターフェイスに対し port 22 を開いている意味」です。 「*」は「全部」を意味する正規表現です。

注意: ps をとって /usr/sbin/sshd ではなく /usr/pkg/sbin/sshd が 動いていることを確認してください。 パスをよく見て(/usr/sbin ではなく /usr/pkg/sbin ですよ)!

テスト(2): OS をリブートし、きちんと sshd が動いていることを確認します (確認方法は上述の操作と同じです)。

確認: クライアント PC からサーバに SSH できることを確認

SSHのサーバ側に アカウントを作成 し、 クライアント PC からサーバへリモートログインできることを確認してください。

Caution

この確認では、パスワード認証でログインします。

ログインできることを確認後、 パスワード認証を停止し、 公開鍵暗号認証に変更してください。

サーバの IP が 10.0.0.1 、サーバに作成したユーザが tencho だとします。

[クライアント PC 上での実行例]

% ssh -l tencho 10.0.0.1

確認: サーバ PC に認証の鍵を設定する

すでに、SSHのサーバ側に アカウントを作成 し、 クライアント PC からサーバへリモートログインできることを確認したはずです。

Caution

一つ前の確認では、パスワード認証でログインしていますが、本節で、 パスワード認証を停止し、 公開鍵暗号認証に変更します。

サーバの IP が 10.0.0.1 、 サーバに作成したユーザが tencho、 クライアント PC で、あなたのユーザが kenken だとします。

行なうべき手順は次のとおりです。

(1) クライアント PC で SSH の鍵(公開鍵)を生成する。
(2) サーバ PC へ公開鍵を転送する。
(3) サーバ PC へ公開鍵暗号認証で(パスワードを聞かれることなく)ログインできることを確認。
(4) サーバ側の設定ファイル sshd_config を変更して sshd を reload
(注: (4)の設定ファイルについては、 次節 を参照)

[クライアント PC 上での実行例]

% ssh-keygen -b 4096 -t rsa
% scp -p ~/.ssh/id_rsa.pub tencho@10.0.0.1:
% ssh -l tencho 10.0.0.1

[サーバ PC 上で(続き)]

% mkdir .ssh
% mv id_rsa.pub .ssh/authorized_keys
% chmod 700 .ssh 
% chmod 600 .ssh/authorized_keys

一度、サーバ側からログアウトし、公開鍵暗号認証でログインできるか?を確認。

[サーバ PC 上で(続き)]

% exit

[クライアント PC]

% ssh -l tencho 10.0.0.1

ログインできましたか? ログインできたなら、 次節 へ進み、パスワード認証を禁止してください。

備考: もう少し詳しく SSH の鍵を作るところを記すと、次のようになります。

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): パスフレーズ
Enter same passphrase again: パスフレーズ
(注: 実際には、パスフレーズは表示されません)。

パスフレーズというくらいなので、8文字と言わず、 もっと長いフレーズをパスワードとして設定して下さい。 たとえば、

        0nknkmcgwkrnytnkriDA!
        (女の子の気持ちがわからないやつなんて嫌いだ)
とか長い奴 (注: パスフレーズは「公開鍵暗号のキー」を暗号化するための DES3 秘密鍵)。 もちろん、パスフレーズには、 英大文字、英小文字、数字、特殊記号をとりまぜたものが推奨されます。

設定ファイル /usr/pkg/etc/ssh/sshd_config

listen(2) するアドレスとポート番号の設定を確認して下さい。 もちろんデフォルト値で問題ない場合もよくあります。 仕様書に従ってください。

絶対に NO であることを確認する項目は次の通りです。

デフォルト値が YES となっていたら NO [1] に書き換えてください。


PermitRootLogin no

PermitEmptyPasswords no

PasswordAuthentication no

テスト(3) 設定ファイルのデフォルト値との差分を確認してください。 支持どおりになっていますか?

# diff -ub /usr/pkg/share/examples/openssh/sshd_config /usr/pkg/etc/ssh/sshd_config

設定変更を反映させるために sshd を reload もしくは restart してください。

% su root
# /etc/rc.d/sshd reload

もしくは

# /etc/rc.d/sshd restart

Notes

[1]

注意: サーバ機ではパスワード認証など使わせないので

PasswordAuthentication no
としますが、オフィス内のサーバであれば 「PasswordAuthentication yes」 でもよいでしょう。

[HOME] [研究室] [github] [twitter] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2018 Ken'ichi Fukamachi mail:< fukachan at fml.org >