公開錠ログイン

 いちいちパスワードを入力するのは、めんどくさいし、パスワードが漏洩するリスクも高くなります。そんなわけで、公開鍵を利用して、パスワードを入力することなくサーバーにログインするための設定をします。

 最初にローカルのPCに「.ssh」というディレクトリを作成します。というわけで、以下はローカルでの作業。
 ターミナルで以下のように入力するとホームディレクトリにディレクトリが作成されます。


  1. mkdir ~/.ssh 

 つづいて、鍵を作成します。


  1. ssh-keygen -t rsa 

 .sshディレクトリ内にid_rsaとid_rsa.pubという2つのファイルが作成されます。これが鍵です。このうち、
「id_rsa.pub」というファイルをサーバーにある「demo」アカウントのホームディレクトリにコピーします。(以降出てくる「demo」と
「123.45.67.890」の部分はそれぞれ、自分の作成したユーザー名とサーバーのIPアドレスに置き換えて考えてください。)

  1. scp ~/.ssh/id_rsa.pub demo@123.45.67.890:/home/demo/ 

 次にアップロードしたファイルを所定の場所に移動して、権限を設定します。これ以降はサーバーでの作業。
 まずはrootでサーバーにログインします。続いて、./sshディレクトリを作成し、アップロードした鍵ファイルをその中に移動します。移動の際、ファイル名を「authorized_keys」と言う名前に変更しています。以上まとめると以下のような感じ。

  1. mkdir /home/demo/.ssh 
  2. mv /home/demo/id_rsa.pub /home/demo/.ssh/authorized_keys 

つづいて、他の人に利用されないように鍵の権限を変更します。

  1. chown -R demo:demo /home/demo/.ssh 
  2. chmod 700 /home/demo/.ssh 
  3. chmod 600 /home/demo/.ssh/authorized_keys 

 これで、ユーザー「demo」はパスワード無しでサーバーにアクセスできます。

 さらにセキュリティを高めるために、SSHの設定をいじります。sshの設定をviで編集します。


  1. vi /etc/ssh/sshd_config 

 編集ヶ所は以下の通り。


  1. Port 30000 
  2. Protocol 2 
  3. PermitRootLogin no 
  4. PasswordAuthentication no 
  5. X11Forwarding no 
  6. UsePAM no 
  7. UseDNS no 
  8. AllowUsers demo 

「Port」はsshを接続するのに使うポート番号。デフォルトは22番ですが、セキュリティの事を考えてポート番号を変更。外から発見されにくい
よう、予想されにくい番号を入れた方が良いらしいですが、気休めな気もしないでもない。パスワード認証を使用しないなら、別に22番のままでも良いような
気がしますが。
 「Protocol」はプロトコルのバージョン。1と2があって、簡単に言うと1より2の方がよりセキュアということらしいです。
 「PermitRootLogin」はrootでログインすることを許可するか否か。noとすることで、rootでログインできなくします。
 「PasswordAuthentication」はパスワードによる認証を行うか否か。noとすることでパスワード認証を無効にします。パスワードを
使わないなら、どうやってログインするんだ?って感じですが、そこで公開鍵による認証の設定をしたわけですね。逆に言うと、鍵でしかサーバーにログインで
きないので、鍵をなくしたら大変。
 「X11Forwarding」「UsePAM」「UseDNS」は、何か分かりませんが(調べるのがめんどくさくなった)、なんとなくno。名前からなんとなく予想は付きますが。
 「AllowUsers」はログインを許可するユーザーです。ここではdemoを追加しています。複数設定する場合は、スペース区切りで列挙。

 実際にはこんな風に一ヶ所に全ての設定はまとまっておらず、それぞれの項目はあちこちに散らばっていました。文字列検索して探し出し、設定しました。

 以上を設定したら、保存してviを終了。

 sshの設定を有効にするため、設定を再読込します。


  1. /etc/init.d/sshd reload 

 無事再読込が完了したら、新しいユーザーでアクセスできるかテストしてみます。現在rootでログインしているターミナルはそのままにして、新しいターミナルを開いて、作成したユーザー(ここではdemo)でログインします。
 rootでログインしている方を開きっぱにしておくのは、sshの設定が間違っていて、一般ユーザーでもrootユーザーでもログインできないという悲惨な状態を回避するため。


  1. ssh -p 30000 demo@123.45.67.890 

 「-p 30000」とか打つのめんどくせーよ、忘れちまうよ。という人は以下でもOKらしいです。試したことないのでホントにこれでOKなのか分かりません。


  1. ssh demo@123.45.67.890:30000 

 無事ログイン出来ると以下のように表示されます。今度はパスワードの入力をすることなくログインできます。


  1. [demo@server ~]

 これで一般ユーザーでログインできるようになりました。以降はこの一般ユーザーを通して、サーバーの管理をしていきます。

カテゴリー: 未分類   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です