自宅サーバにsshのポートをあけているのですが、悪い人がいろんなアカウントで入ろうとしてきました。セキュリティを強化します。
まず、/etc/hosts.allowでローカルのみにアクセスを制限。
さらにMacOSXではsshのdefaultの設定はログインパスワードがONなのですが、これをOFFにして鍵認証onlyにします。
鍵の作成およびsshクライアントとしてputtyを使うことにしました。
PuTTY ごった煮版
鍵の作成手順
1) puttygen.exeを起動
2)鍵の生成を行い、マウスを適当に動かします
3)鍵を保存します
–難しめのパスフレーズを入力
–公開鍵: id-rsa.pub
–秘密鍵: id-rsa.ppk
公開鍵をサーバにアップ、putty/pscp.exeを使います。Windowsのコマンドプロンプトから
>pscp source id-rsa.pub username@192.168.x.x:/Users/username
で、MacOSのuserフォルダに公開鍵がアップできます。
MacOSX側で公開鍵をauthorized_keysに追加します。
# cd ~ # cat id-rsa.pub >> .ssh/authorized_keys # rm id-rsa.pub
念のためアクセス制限をファイルにかけておきます。
# chomod 0700 .ssh # chomod 0600 .ssh/authorized_keys
次にputtyでkeyを作成するとkeyのビット数が1024で作成されます。これにあわせてサーバのkeyの強度を768から1024にあげます。
#sudo vi /etc/sshd_config ServerKeyBits 1024
あとはputtyを起動して適切な情報
– セッション:接続先の指定:ホスト名(N)
– 接続:データ:ログインの詳細:自動ログインのユーザ名(U):
– 接続先:SSH:認証:認証のためのプライベートキーファイル(K)
を入力して開く(O)を押します。
開く前にセッションを保存しておくことをお勧めします。
passphraseが聞かれたら成功です。
失敗すると通常のログインパスワードを聞かれてしまいます。
うまくログインできたら、sshからの通常のログイン入力を禁止にします。
# sudo vi /etc/sshd_config PasswordAuthentication no UsePAM no
これで終わりです。
秘密鍵+パスフレーズも良いんだけどこれをType Tの指紋認証と連携できたらうれしいなぁ。