Inside Out

自分自身の備忘録。アウトプット用のブログです。

Linux初心者がさくらVPSでJenkinsを一から構築してみました(前編CentOS設定編)

放置気味だったさくらVPSで一からJenkinsを構築してみました。 普段仕事ではWindowsServerしか触っていないのでLinuxに苦労しました。

ローカル環境

MacOSX Moutain Lion

インストール前環境

OS:CentOS6.4 (Release final)
初期状態

初期設定

まずはローカルからターミナルでログイン

ssh root@[IPアドレス]

ユーザーを作成します

useradd [任意のユーザー名] -G wheel #wheelというグループでユーザを作成  
passwd [任意のユーザー名]  #パスワードを設定 

yumを最新のものにアップデートをします

sudo yum update

通常Root権限を持つユーザは無効にして一般ユーザを使用する事が、セキュリティ的には一般的かと思います。
そのためUnix系OSでは権限が必要な操作をするために一般ユーザに一時的にRoot権限を与えるsudoというコマンドが存在します。
そのsudoを適切に使用できるように設定します。
sudo vim /etc/pam.d/suで設定ファイルを開きます。
この際vimというCLIで使用できるテキストエディタで開きます。
vimは複数のモードを使い分けてテキストを編集するという独特のものとなります。
操作方法は下記を参照させて頂きました。
http://matome.naver.jp/odai/2133561662251169101
下記の先頭のコメントアウト(#)を外します。

# auth required pam_wheel.so use_uid

そして次はsudo vim /etc/login.defsを開き末尾に下記を追加して保存します。

SU_WHEEL_ONLY yes

さらにsudo visudoを開き下記の行のコメントアウト(#)を外します。

# %wheel ALL=(ALL) ALL

sudo vim /etc/ssh/sshd_configを開きます。
ここではセキュリティのためにsshで使用するポートの変更とRoot権限をログインでの禁止を行います。
ポート番号は0から65535まで使用できますが、他のサービスと被らないように10000以上にします。 下記の部分を修正します。

Port [任意のポート番号] #sshで使用するポートの設定 既定は22
PermitRootLogin no #Root権限でのログイン禁止
PasswordAuthentication no #パスワードによるログイン禁止

サーバに~/.ssh/フォルダを作成します。

su - [ユーザ名] #指定したユーザを一時的に使用
mkdir ~/.ssh/ #フォルダ作成
chmod 700 ~/.ssh/ #フォルダ権限変更

ここでサーバからログアウトしてローカルで鍵を作成します。

cd ~/.ssh
mkdir [任意のフォルダ名] #フォルダ名はVPS名など
cd [任意のフォルダ名]
ssh-keygen -t rsa -C "メールアドレス" #鍵生成

ssh-keygenを実行するとkeyファイル名を設定するように求められます。id_rsa.[VPS名]などにすると管理がしやすくなります。
また次にパスフレーズを2回求められるので入力します。パスフレーズは忘れないようにしてください。これで下記のファイルが生成されます。

id_rsa.[VSP名] #秘密鍵
id_rsa.[VSP名].pub #公開鍵

セキュリティのために秘密鍵の権限を設定します。

chmod 600 id_rsa.[VPS名]

次にサーバにファイルを送ります。

scp id_rsa.[VPS名].pub root@[IPアドレス]:/home/[ユーザ名]/.ssh/authorized_keys

完了したらsshでサーバにログインしてautorized_keysの所有者と権限を変更します。

ssh root@[IPアドレス] -p [ssh用ポート]
su - [ユーザ名]
sudo chown [ユーザ名]:[ユーザ名] /~/.ssh/autorized_keys
chmod 600 /home/[ユーザ名]/.ssh/authorized_keys
exit #Rootユーザに戻す
/etc/init.d/sshd restart #sshを再起動
exit

以降rootでのログインは不可能になります。 次にローカルでvim ~/.ssh/configを開き新規でconfigファイルを作成します。内容は下記になります。

Host [VPS名]
    HostName [IPアドレス]
    Port [SSH用ポート]
    User [ユーザ名]
    identityfile ~/.ssh/[VPS名]/id_rsa.[VPS名]

これでローカルからVPS名でログイン可能になります。
長くなって来たので前編はここまで。

ここまでは下記を参考にさせて頂きました。 http://morizyun.github.io/blog/sakura-vps-centos63-ssh-setup/