OpenSSHをログイン認証にしていると辞書攻撃等でパスワードが判明する確率が高くなってしまいます。
そこで認証方式をログイン認証から公開鍵認証に変更して特定のクライアントからのみログインを許可するように変更します。
大まかな手順は以下のとおり。
・鍵ペアの作成
・ログイン認証の無効化

まずサーバ側で鍵ペアを作成します。
なるべく強度を高くするためRSA(2048bit)で生成します。

$ ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): ********
Enter same passphrase again: ********
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
11:aa:22:bb:33:cc:44:dd:55:ee:66:ff:77:gg:77:hh user@server

.sshディレクトリ配下に鍵が生成されていることを確認します。

$ ls -al .ssh
合計 16
drwx------ 2 user 4096  3月 20 10:14 .
drwx------ 4 user 4096  3月 20 10:22 ..
-rw------- 1 user 1675  3月 20 10:14 id_rsa
-rw-r--r-- 1 user  393  3月 20 10:14 id_rsa.pub

authorized_keysファイルに公開鍵を登録します。

$ cat id_rsa.pub >> authorized_keys

これでサーバ側の準備は終わりです。
次にクライアント側の準備をします。
先ほど生成した鍵ペアのうち秘密鍵をクライアントに安全な方法でコピーします。
Teratermを使う人はコピーした秘密鍵をそのまま使用することができますが、PuttyやWinSCPは秘密鍵を変換が必要です。
Puttyのインストールフォルダにあるputtygen.exe使って秘密鍵の変換をします。
手順は簡単で以下のとおりです。
1.既存の秘密鍵を読み込む
2.秘密鍵の保存

これでPuttyからもアクセスできるようになります。
秘密鍵を指定してSSH接続できればOKです。
パスフレーズを空白にしていればそのまま接続されると思います。

最後にパスワード認証を無効化しておきます。
/etc/ssh/sshd_config

PubkeyAuthentication yes
PasswordAuthentication no

OpenSSHを再起動後の動作確認で問題なければOKです。

# tail /var/log/secure
●公開鍵でのログイン成功のログ
Mar 20 11:13:04 host sshd[38235]: Accepted publickey for user from xxx.xxx.xxx.xxx port 35804 ssh2

●ユーザ認証失敗のログ
Mar 20 02:28:47 host sshd[13766]: Received disconnect from xxx.xxx.xxx.xxx: 14: No supported authentication methods available