teraterm(ssh2対応) + 公開鍵認証

近頃、リモートログインが鬼のように試行されており、postgresやwwwなどありがちなユーザー名だけでなく、日本人が付けそうな様々なユーザー名でも試行されている模様なので、念のためクリアパスワードによる認証は無効にして、公開鍵/秘密鍵による認証のみ許可するようにした。

やりたいこと

  • Windows端末からteratermを使ってPC UNIXへsshによりリモートログインする。
  • セキュリティ上、公開鍵/秘密鍵による認証のみ許可する。
  • teratermでssh2が使えるようになったらしいので、使ってみる。

teraterm / sshって?

  • 省略。

teraterm(ssh2対応版)の入手。

VectorとかSourceForgeとか
以下は、UTF-8対応のTeraterm Proを前提ということにする。

teratermのインストール

  • インストーラの指示どおりに行えば、特に問題無いので省略。

公開鍵/秘密鍵の作成と扱い

リモートログインするサーバー側で行う。 鍵のペアはサーバー側、クライアント(teraterm=TTSSH)側のどちらでも作成することができる
付属のドキュメントによると、OpenSSHの ssh-keygen コマンドで生成したもののみ利用できる模様。
また、パスフレーズは安全のために必ず設定した方が良い。クライアント側でペアを生成すれば、公開鍵をログインするサーバー側へ持っていけば良いので、クライアント側で生成するのが良いかも。

  • ログインするサーバー側(PC UNIX)で作成する場合。
    [hoge@hoge ~]$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/hoge/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/hoge/.ssh/id_rsa.
    Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
    The key fingerprint is:
    xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx hoge@hoge.com

上記のコマンドで出来た、id_rsa が秘密鍵、id_rsa.pub が公開鍵。

  • teraterm(TTSSH)で作成する場合は、次の手順で行う。

メニューの[Setup]-[SSH KeyGenerator?]を選択する。
keygen1.png

作成するキーのタイプ(ここではdsa)を選択し、[Generate]ボタンをクリックする。
keygen2.png

パスフレーズを入力する。
keygen3.png

[Save public key]をクリックし、公開鍵を保存する。
keygen4.png

[Save private key]をクリックし、秘密鍵を保存する。
keygen5.png

以上で鍵のペアが生成できた。クライアント側で作成した場合は、公開鍵をログインするサーバー側へ転送し、下記の「公開鍵の設定」のとおりにauthorized_keysへ追記しておく。

公開鍵の設定

公開鍵はサーバー側で ~/.ssh/authorized_keys というファイルに追加する。

[hoge@hoge ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

秘密鍵

サーバー側で秘密鍵を生成した場合は、FDにコピーするなど、安全な方法でクライアントへ持っていく。(別にftpでも良いけど...。)
安全のためにペアになっている秘密鍵はサーバー側にはおいて置かない方が良いんでしょうね、たぶん。

sshd の設定変更

公開鍵/秘密鍵の認証のみ許可するように、sshd_confingの設定を変更し、 sshd を再起動しておく。

/etc/ssh/sshd_config (デフォルトでは/etc/sshにある)

こんな感じになっていれば良さそう。(一部抜粋)

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
#
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
IgnoreUserKnownHosts yes
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
#
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no
#
# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Linuxなら、/sbin/service sshd restart、他なら kill -HUP [sshdのprocess_id] 等のコマンドでsshdに設定変更を反映する。

teratermの設定

次のように設定すれば自動ログインができる。

teraterm menu

UTF8対応版のteratermには、teraterm menuというタスクトレイに常駐するアプリが同梱されており、デフォルトのインストールではスタートメニューに登録される。起動していない場合は、インストールディレクトリにあるttpmenu.exeを起動する。

ttpmenu.png

アイコンを右クリックして「List Configuration」を選択する。
ttpmenu2.png

こんな感じでホスト名、ID/パスフレーズ、秘密鍵のパスを設定する。
ttpmenu3.png

注意として、別(古い)のteratermがインストールされている環境では、UTF8対応版のttermpro.exe を指していない場合があるので、[details]ボタンをクリックして、 UTF8対応版(ssh2対応版)の方が設定されているかどうかを確認しておく。
ttpmenu4.png

以上で設定は完了なので、左向きの▲ボタンをクリックして設定を反映する。
ttpmenu5.png

タスクトレイのアイコンをクリックすると、上記で設定した設定名が表示されるのでこれを選択すると自動ログインできるはず。
ttpmenu6.png



添付ファイル: filekeygen3.png 657件 [詳細] filekeygen1.png 654件 [詳細] filettpmenu5.png 717件 [詳細] filettpmenu6.png 547件 [詳細] filekeygen2.png 648件 [詳細] filettpmenu2.png 531件 [詳細] filettpmenu4.png 608件 [詳細] filekeygen5.png 1053件 [詳細] filettpmenu3.png 814件 [詳細] filekeygen4.png 969件 [詳細] filettpmenu.png 553件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-02-05 (月) 17:34:21 (1270d)