この記事は、下記の記事を構成している記事のひとつです。
さくらのVPS と Debian 8 Jessie で独自ドメインのWebサイトを立ち上げる手順
・さくらのVPS(プラン512)
・Debian 8 Jessie(さくらのVPS カスタムインストール)
の環境を前提にしています。
sshのポート番号を変更する
デフォルトでは、ポート22に設定されていますが、有名過ぎるポート番号なので、ちょっとわかりにくいポート番号に変更します。下記の例では、1234に変更しています。
sudo vi /etc/ssh/sshd_config
#Port 22
Port 1234
設定を変更したら、sshdを再起動します。
sudo systemctl restart ssh
sshにrootユーザでログイン出来ないようにする
今のところ、rootユーザが直接sshログイン出来る必要性が全くないので、rootユーザでは直接sshログイン出来ないように設定を変更します。
sudo vi /etc/ssh/sshd_config
#PermitRootLogin without-password
PermitRootLogin no
設定を変更したら、sshdを再起動します。
sudo systemctl restart ssh
公開鍵、秘密鍵を作成する
認証したいユーザでサーバにログインし、公開鍵と秘密鍵のキーペアを作成します。
下記の例では、hogeユーザでキーペアを作成しています。
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ★[Enter]を押下★
Created directory '/home/hoge/.ssh'.
Enter passphrase (empty for no passphrase): ★パスフレーズを入力★
Enter same passphrase again: ★パスフレーズを再入力★
Your identification has been saved in /home/hoge/.ssh/id_rsa.
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx hoge@hostname
The key's randomart image is:
+---[RSA 2048]----+
| . .o. |
| oo. .. |
| .o+... |
| *..+ |
| S .+. |
| oE.. . |
| . oo . |
| . o.. o |
| . . o.. |
+-----------------+
公開鍵
/home/hoge/.ssh/id_rsa.pub
秘密鍵
/home/hoge/.ssh/id_rsa
公開鍵を配置する
作成した公開鍵を、authorized_keys という名前のファイルで配置します。
cat /home/hoge/.ssh/id_rsa.pub >> /home/hoge/.ssh/authorized_keys
authorized_keys のパーミッションを、600に設定します。
chmod 600 /home/hoge/.ssh/authorized_keys
id_rsa.pubは、削除して大丈夫です。
rm /home/hoge/.ssh/id_rsa.pub
秘密鍵をクライアント側にダウンロードする
秘密鍵なので、ダウンロード自体をセキュアに実施する必要があります。
下記は、クライアントPC側から、SCPコマンドで取得する例です。
(WindowsPC で、WinSCPなどを使用してダウンロードしてもOKですが、その手順は省略します。)
注意!クライアント側作業です。
scp -P 1234 hoge@ipaddress:/home/hoge/.ssh/id_rsa ~/.ssh/.
ダウンロードが終われば、サーバ側に秘密鍵は不要ですので、削除します。
注意!サーバ側作業です。
rm /home/hoge/.ssh/id_rsa
公開鍵認証でsshログインする設定
公開鍵認証を有効にします。
sudo vi /etc/ssh/sshd_config
PubkeyAuthentication yes
設定を変更したら、sshdを再起動します。
sudo systemctl restart ssh
クライアント側から公開鍵認証でsshログインする
ssh -p [ポート番号] -i [秘密鍵ファイル] -l [ユーザー名] [ipaddress or hostname]
(WindowsPCで、Teratermや、puttyでログインしてもOKですが、その手順は省略します。)
注意!クライアント側作業です。
ssh -p 1234 -i ~/.ssh/id_rsa -l hoge hostname
Enter passphrase for key '/home/hoge/.ssh/id_rsa': ★パスフレーズを入力★
パスワード認証でログイン出来ないようにする
注意!サーバ側作業です。
sudo vi /etc/ssh/sshd_config
#PasswordAuthentication yes
PasswordAuthentication no
設定を変更したら、sshdを再起動します。
sudo systemctl restart ssh