OpenSSL/ OpenSSH(SSH2) +
PuTTY の設定に関するメモ(2003/03/25, 更新日:2003/04/03)
必ず 「OpenSSL/ OpenSSH(SSH1) の設定に関するメモ」 を読み、設置してからでおねげーします。
SSH1 と SSH2 の暗号強度というキーワードで検索すると非常に多くの文献が出てきますが、要は SSH1 より SSH2 の方がプロトコル的に優れているという事なんです。な訳で、その優れているという SSH2 の設定をしてみます。
また本ページでは、秘密鍵での接続(yes)、パスワード認証に接続(no)の接続条件として説明しております。
参考 : OpenSSH / SSH1 / SSH2 相互運用のための鍵管理
参考 : OpenSSH と SSH の相互運用
1) rootアカウントでログインし、SSH経由でログインするときの認証方法を設定します。 /usr/local/etc/sshd_config 内の項目を以下の様に修正する。
# SSHプロトコルの指定
Protocol 2
# rootでのアクセス
PermitRootLogin no
# RSA公開鍵認証
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# .rhostファイルや通常のパスワード認証
RhostsAuthentication no
PasswordAuthentication no ← yes にすると、テキスト認証が可能です
PermitEmptyPasswords no
# wheelグループかadminグループに所属していないユーザーは、アクセス禁止
AllowGroups wheel admin
# hoge, hoge2 ユーザのみアクセスを有効にする
#AllowUsers hoge hoge2
# ログのレベルを指定
SyslogFacility AUTH
LogLevel INFO
# 最大起動数(SSHピンポンダッシュ)
MaxStartups 10:30:60
# 公開鍵などを保管するディレクトリ等の属性が適切に設定されているか
StrictModes yes
# ~/.rhosts or ~/.shosts ファイルの無効化
IgnoreRhosts yes
# チャレンジ・レスポンス認証
ChallengeResponseAuthentication no
参考 : man sshd をみなさい
参考 : OpenSSHについてのメモ書きなどなど
1) sshを起動します。
/usr/local/sbin/sshd
2) OSブート時に自動的に起動するように設定する。
/etc/rc.d/rc.local に以下の行を追加しますが、この設定方法はOSによって異なります。
/usr/local/sbin/sshd
1) ログインすべきユーザ(ここでは hoge)で、以下のコマンドを実行します。
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/users/hoge/.ssh/id_rsa):
Created directory '/home/users/hoge/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/users/hoge/.ssh/id_rsa.
Your public key has been saved in /home/users/hoge/.ssh/id_rsa.pub.
The key fingerprint is:
oq:13:qf:43:L4:JJ:II:qa:ba:ka:na:ya:tu:da:na:ha hoge@ns.sea-bird.org※ passphrase とは、RSA認証時に要求される文字列を指し、ここで例としている hoge ユーザのパスワードでは、ない事に注意する。
※ ここでは passphrase に 「hogehoge」と設定した。
※ "-c" オプションで、コメントをつけると複数存在するキーの区別がつきやすくなります。2) クライアント認証時に対するファイルの設定を行います。
% cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys2
% chmod 600 ~/.ssh/authorized_keys23) クライアントに秘密鍵( ~/.ssh/id_rsa )をファイル転送した後は、サーバ側の秘密鍵を削除します。これは、セキュリティ好ましくないための処置です。
4) ".ssh", "authorized_keys?" の属性を個人ユーザのみにしておかないと、ssh接続のlogin時にエラーが表示されます。こんなの ("Authentication refused: bad ownership or modes for directory /...")、けっこうハマリ所なので気つけるように。
※) "-P" オプションを指定することによりパスフレーズのみを変更することも可能です。
※) 無パスフェイズを作成する場合 「ssh-keygen -P ""」で作成することができます。
puTTY.exe で接続する場合、SSHサーバで作成した秘密鍵(id_rsa)を使用して接続する事ができないので、秘密鍵の再作成を行います。
1) 上記説明で作成したサーバ上の秘密鍵( ~/.ssh/id_rsa )を、接続するクライアントのハードディスクにコピーします。
2) puTTYgen.exe プログラムを実行します。
3) ”Load”ボタンを押下するとファイル選択ダイアログが表示されるので、「ファイルの種類」を「All Files」にし、サーバ上で作成した秘密鍵( ~/.ssh/id_rsa )を指定します。秘密鍵にパスフレーズが設定されている場合には、下記のダイアログが表示されます。
4) パスフレーズを正しく入力すると、下記のダイアログが表示されます。”ok”ボタンを押下してください。
5) メイン画面に戻ったら、puTTY で使用する秘密鍵を再作成します。サーバ上で作成された秘密鍵は、SSH2/RSA なので、「Type of key to generate」の”SSH2 RSA”ラジオボタンを選択し、”Save private key”ボタンを押下します。
6) ファイル保存ダイアログが表示されるので、名前を付けて保存します。この保存したファイルが、PuTTY 用の秘密鍵(*.PPK)として、このあと使用します。
クライアント側からの接続(puTTY を使用してぇ)