#概要
備忘録として書いております。
タイトル通りconoha VPSを立ち上げて、基本的な設定(ユーザー追加、rootログイン禁止、ssh、ファイアウォール)を行った後、visual studio codeのSSH機能でアクセスしてみます。
#環境
Mac Book Pro(macOS Catelina 10.15.1)
Conoha VPS (ubuntu RAM 512MB)
##1. VPSログイン
conohaでVPSを立ち上げた後、macのターミナル上でrootログイン(パスワードでログイン)します。
VPSのIPはxxx.xxx.xxx.xxxとして記載しています。
ログイン時にconohaのHPで指定したrootパスワードを聞かれますので打ち込んで下さい。
$ sudo ssh xxx.xxx.xxx.xxx
##2. ユーザー追加
root以外に実際に使うユーザーを追加します。
こちらもここでは新しいユーザー名をYYYYとします。
$ sudo useradd -m YYYY
$ sudo passwd YYYY
1行目useraddのオプション-mで、ホームディレクトリを作成させます。
そして、作成したユーザーYYYYにsudo権限をつけます。
$ gpasswd -a YYYY sudo
$ id YYYY
オプション-aは上書きという意味です。
2行目でsudo権限がついているか確認します。(なので実行しなくても大丈夫です。)
この段階で一度VPSからログアウトし、今作成したYYYYにSSHログインできるかチェックしておきます。
$ sudo ssh YYY@xxx.xxx.xxx.xxx
これで無事VPSにログインできればここまではOKです。
3. rootでSSHログイン禁止にする
sudo vim /etc/ssh/sshd_config
PermitRootLoginをnoにしてください。
実行後、SSHのconfigをrestartします。
$ sudo service sshd restart
これでrootログインができなくなりました。
(できなくなっているか確認が必要であれば適宜行ってください。)
4. 公開鍵認証を設定
下記で鍵を作成し、VPSに公開鍵を転送します。
鍵の名前はここではmy-ssh-keyととりあえずしています。
$ cd ~/.ssh
$ ssh-keygen -t rsa -f my-ssh-key
$ chmod 600 conoha-isucon
$ ssh-copy-id -i ~/.ssh/my-ssh-key.pub YYYY@xxx.xxx.xxx.xxx
一番下のコマンドssh-key-idで作成した公開鍵を転送します。
また、下記コマンドを叩いてconfigを作っておくとログインが楽になります。
(visual studio codeのremort SSHを使う際は必ず必要になります。)
$ vi ~/.ssh/config
###viで下記を記入。ここではHostをconohaとしている。###
Host conoha
Hostname xxx.xxx.xxx.xxx
User YYYY
IdentityFile ~/.ssh/my-ssh-key
Port 22
これでMacのterminal上でssh conohaと叩くだけでVPSにログインができるようになりました。
ここでVPSにログインして、パスワードログインができないように設定を変えます。
$ sudo vi /etc/ssh/sshd_config
PasswordAuthenticationをnoにしてください。
また、ついでにポート番号を22(SSHのデフォルト)から変更しておくと良いです。
(# Port 22の番号を任意の49152-65535のどれかに変更。
変更後はmac上のconfigファイルのポートも22から変更しておきます。)
その後、
$ sudo service sshd restart
でSSHのconfigをrestartします。
##5. ファイアウォールの設定
ここではufwの設定をします。
$ sudo ufw enable # ufwを有効化
$ sudo ufw default deny # デフォルトでは拒否設定
$ sudo ufw allow https/tcp
$ sudo ufw allow http/tcp
$ sudo ufw allow ftp
$ sudo ufw allow (SSHのポート番号)
$ sudo ufw reload # 設定を反映させる
$ sudo ufw status verbose # 必要であればこのコマンドで設定を確認する。
これでVPSの(最低限の)設定が全て完了しました。
##6. Visual Studio Codeでログイン
拡張機能のremort SSHを使います。
特筆することはないですが、私が一度躓いたので書いています。
ログインする際に
"Could not establish connection 〜"
と出てきました。
VScodeの設定のremote.SSH.useLocalServerをfalse(デフォルトではtrue?)にすることで解決しました。
Bash 以外のシェルを使用しているとこの問題が発生するらしいです。