社内でもssh管理は「鍵認証にしよう!」ということで、今日はその対応方法についてめもです。
パスワード接続だとちょっと不安ですしね。
まずはサーバ上でnew_userというログインユーザを作ります。(既存のもので対応する場合は必要なし)
<サーバ>
# useradd -d /home/new_user -s /bin/zsh -g goup_name new_user
次にOPEN-SSLで鍵ファイルを作成します。公開鍵はサーバ上に、秘密鍵はクライアントに置きます。
作成する場所はどちらでも構いませんが、分かりやすいので今回はクライアント側で作ることにします。
<クライアント>
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa): そのままEnterでも良いが、複数ホストに対応する場合はファイル名を変えたほうが良いので今回は「id_rsa.hostA」と打ちます。 Enter passphrase (empty for no passphrase): パスフレーズを入力(必要ない場合はそのままEnter) Enter same passphrase again: 再度パスフレーズ入力これでファイルが2つ生成されるはずです。
・id_rsa.hostA 秘密鍵。クライアントの.ssh以下へ置く。
・id_rsa.hostA.pub 公開鍵。サーバの.ssh以下へ置く。
では公開鍵をサーバへFTPなどで持って行き、該当のユーザ(この例ではnew_user)の.sshディレクトリ以下へ保存しておきます。説明は省略。
またその内容をauthorized_keysファイルへ追記します。
<サーバ>
$ cat id_rsa.hostA.pub >> ~/.ssh/authorized_keysとりあえずここでSSHの鍵認証が可能です。
あとはセキュリティのため、サーバのsshd_configの設定を変更し、パスワードによるログインができなくしましょう。
<サーバ>
# cd /etc/ssh # cp sshd_config sshd_config.bak // バックアップを取る # vim /etc/ssh/sshd_config --------------------------------- # 以下3つはコメントアウトのままでもデフォルトで問題ない RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys # noに変更する! PasswordAuthentication noこれでOK。
設定を反映させます。
<サーバ>
# /etc/init.d/sshd restartこれでパスワードによるログインはできなくなり、公開鍵でのログインができるようになりました。
ちなみに接続方法は
<クライアント>
$ ssh new_user@hostA -i ~/.ssh/id_rsa.hostAになります。鍵ファイルにパスフレーズを設定している場合は、入力を求められます。
ただしこの方法だと、管理する複数のホストで鍵認証する場合、都度「-i オプション」で鍵ファイルを明示的に指定しなければいけません。面倒です。
なので.ssh/configに設定を書いておき、楽しちゃいましょう。
<クライアント>
$ vim ~/.ssh/config --------------------------------- Host serverA # HostNameはドメインまたはIPアドレス HostName hostA.com Port 22 User new_user IdentityFile ~/.ssh/id_rsa.hostA Host serverB HostName hostB.com Port 22 User foo_user IdentityFile ~/.ssh/id_rsa.hostB Host serverC HostName xxx.xxx.xxx.xxx Port 22 User bar_user IdentityFile ~/.ssh/id_rsa.hostCこんな感じです。
これであれば、例えばhostB.comへ接続する場合
<クライアント>
$ ssh serverBと打つだけで、
・hostB.comへ
・foo_userで
・22番ポートで
・~/.ssh/id_rsa.hostBの秘密鍵を使って
接続を試みてくれます。
楽チンですねーー!以上でぇぇぇええぇす。
0 件のコメント:
コメントを投稿