tkak's tech blog

This is my technological memo.

sshの初期設定

新年もあけたということで、さくらのVPSの再構築でもしようかと。


まずは、大事なアカウントとsshまわりの設定から。

http://blog.myfinder.jp/2010/09/vpsssh.html
ほぼ、↑のサイトに沿ってやってって感じです。
wheelグループの登録とか、sudo実行のログ取得とか、
自分の知らなかった設定方法がのってたので、勉強になりました。

大体の流れは、こんな感じです。

  • 一般ユーザの作成
  • 公開鍵認証のための鍵の生成と配置
  • sshdの設定
  • ログインテスト
  • sudoの設定
  • rootパスワードの無効化
  • sudo実行のログ取得設定

以下、詳細というか、自分なりの補足です。

一般ユーザの作成

さくらのVPSでOSを再インストールすると、最初はrootしかアカウントがないので、まずは自分用のアカウントを作ります。

$ ssh <sakura's server> -l root
# useradd tkak
# passwd tkak
# usermod -G wheel tkak
# id tkak
# ls -ld /home/tkak

usermod -G wheelは、root権限をwheelグループに属するユーザに制限するため。

※ wheelグループ: http://itpro.nikkeibp.co.jp/word/page/10005502/

公開鍵認証のための鍵の生成と配置

次に、sshするときパスワード入力をしないようにするため、
クライアント側で秘密鍵と公開鍵を生成して、公開鍵をサーバ側に登録します。

クライアントPCで

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/<home dir>/.ssh/id_rsa): <- Enter
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /<home dir>/.ssh/id_rsa.
Your public key has been saved in /<home dir>/.ssh/id_rsa.pub.
The key fingerprint is:
...
$ ls -l ~/.ssh/
$ scp ~/.ssh/id_rsa.pub tkak@<sakura's server>:.

※ dsaよりもrsaのほうが安全性は高いらしいです。
http://monoknock.blog116.fc2.com/blog-entry-34.html

さくらのサーバで

$ mkdir .ssh
$ ls -ld ~/.ssh
$ cat id_rsa.pub > ~/.ssh/authorized_keys
$ rm id_rsa.pub
$ chmod 600 ~/.ssh/authorized_keys

sshdの設定

rootでのログインを許可しない、パスワード認証をしないための設定を入れます。

# vi /etc/ssh/sshd_config
---
// yesからnoに変更
PermitRootLogin no
PasswordAuthentication no
---

# /etc/init.d/sshd restart


※sshdの設定って、頭に#がついているものは、無効化されているのではなく、デフォルトの設定なんだってね…。知らなかったー。
ホントのコメントは頭に「#と (半角スペース)」がついている。
ssh: http://open-groove.net/linux/sshd_config-option/

ログインテスト

ここで、ログインのテストをしてみます。

$ ssh <sakura's server>
Permission denied (publickey,gssapi-with-mic).

あれ、、、なんかsshできない…。
調べてみると、.sshのパーミッションが700になってないとでるみたい。

sshで「Permission denied (publickey,gssapi-with-mic).」が出た時: http://d.hatena.ne.jp/h-yano/20080225/1203952174

修正します。

$ chmod 700 ~/.ssh
$ ls -ld ~/.ssh

再度sshしたら、ログインできました!

$ ssh <sakura's server>

SAKURA Internet [Virtual Private Server SERVICE]

<sakura's server>$


以下の3つは、
http://blog.myfinder.jp/2010/09/vpsssh.html
↑のやり方そのままなので、省略します。(別にめんどくさくなったからとかじゃ、、、

  • sudoの設定
  • rootパスワードの無効化
  • sudo実行のログ取得設定

sudoを誰が実行したかログを取得するようにすれば、
rootになろうとして失敗したときにアラートメールを送信するなんてこともできますね。

と、まぁ、そんな感じで、
sshの初期設定が完了しましたー。

-- 追記 --

変にsshアクセスされるのも嫌なので、
sshのデフォルトポート22番をハイポート(1024~65535)に変更しておきます。

# vi /etc/ssh/sshd_config
---
#Port 22
Port XXXXX
---

クライアントから接続するときは、下記になります。

$ ssh <sakura's server> -p XXXXX