ファイアウォール設定
CentOS7ではfirewalldというプログラムでファイアウォールの設定を行います。
ファイアウォールとは
現在の設定の確認方法
sudo firewall-cmd --list-services
こちらで、現在firewalldがどのサービスを許可しているかを確認することが可能です。
sshのポートを変更する
現在のsshに関する設定ファイルをもとに、新しいファイルを作成します。 まずは、現在のsshの設定ファイルをコピーします。
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh_edited.xml
コピーされた /etc/firewalld/services/ssh_edited.xml を編集し、sshで利用するポートを22番から任意の値に変更します。
sudo vim /etc/firewalld/services/ssh_edited.xml
49152 ~ 65535の範囲でゾロ目などを避けた任意の値を設定しましょう。
ssh_edited.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>
上記の
<port protocol="tcp" port="22"/>
の箇所を
<port protocol="tcp" port="[設定するポート番号]"/>
に変更します。 10022や2222などは、推測されやすいので避けましょう。
firewalldに設定を登録
sudo firewall-cmd --add-service=ssh_edited --permanent
さらに、firewalldを再起動して設定を反映させます。
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
とすると現在の設定一覧が表示されます。ssh_editedが含まれていることを確認しておきましょう。
ssh接続設定の書き換え
まず、VPS側の設定として、sshd_configを書き換えます。
sudo vim /etc/ssh/sshd_config
Port設定を行なっている箇所のコメントアウトを外し、先ほど設定したポート番号に変更します。
Port [設定したポート番号]
さらに sshを再起動して設定を反映させましょう。
sudo systemctl restart sshd.service
続いて、PC側のconfigを変更します。 別のターミナルで
vim ~/.ssh/config
で設定ファイルを開き
~/.ssh/config
Host [任意の接続先名(conoha_wordpressなど)]
HostName [VPSのIPアドレス]
User [作成したユーザー名]
Port [設定したポート番号]
IdentityFile ~/.ssh/[鍵名]
のようにポート番号を変更しましょう。
ここまで完了したら、改めて
ssh [接続先名]
で接続してみましょう。
[ポート番号]: Connection Refused などが表示される場合には、sshdの再起動を行なったかどうか確認しておきましょう。
元のssh設定の削除
これで、sshでの接続は新しく作成したssh_editedという設定で行うようになったため、元のssh設定は不要になります。
sudo firewall-cmd --remove-service=ssh --zone=public --permanent
で設定を削除し、さらに
sudo firewall-cmd --reload
で設定を反映させましょう。
sudo firewall-cmd --list-services
でsshが設定から削除されていることを確認しておきましょう。
wordmoveの設定
最後に、wordmoveからのsshでの接続設定もしておきましょう。
Mac側の設定
Macのssh-agentに秘密鍵を登録します。
ssh-add -K ~/.ssh/[鍵名]
vagrant側の設定
続いて、Vagrantfileにある以下の行のコメントアウトを外します。
config.ssh.forward_agent = true
この状態で、vagrant upを行うと、vagrantからMacに保存された鍵ペアを利用できるようになります。
Movefile.ymlの編集
続いて、Movefile.ymlを編集してポート番号を変更後のものに設定します。
ssh:
host: "[VPSのIPアドレス]"
user: "[作成したユーザー名]"
port: [変更後のポート番号]
rsync_options: --verbose
その上で、
cd /vagrant
wordmove push --all
で正しく設定されていれば、パスワード入力不要でwordpressがデプロイできるようになります。