owner203はUbuntu信者です。このメモではConoHaでサーバー作成後、安全のために行った初期設定の流れを記録します。ディスクイメージはUbuntu 18.04を選んで、後で18.10にアップグレードしました。
(2021/4/14追記)
Ubuntu 20.04で書き直したので、この記事を見てください。
Host名設定
まずホスト名を設定します。
hostnamectl set-hostname myhostname
ユーザー追加
rootユーザーをこのまま使うと危ないから、一般ユーザーを追加して、sudo権限を付与します。
adduser username
gpasswd -a username sudo
rootユーザーをログアウトして、一般ユーザーを使います。
SSHに関する設定
デフォルトのポート番号を変えます。
sudo vi /etc/ssh/sshd_config
/etc/ssh/sshd_config
--Port 22
++Port 12345 #5桁のポート番号がおすすめ
--PermitRootLogin yes
++PermitRootLogin no
ufwを有効にして、使うポート番号を開きます。
sudo ufw enable
sudo ufw allow 12345
安全のため、SSHをパスワード認証ではなく鍵認証にします。サーバーで鍵ペアを作成して、クライアントに保存します。
username@server
ssh-keygen -t rsa
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys #権限設定間違えると怒られる
@client
mkdir ~/.ssh
chmod 700 ~/.ssh
scp -P 12345 username@server_ip:/home/username/.ssh/id_rsa ~/.ssh
SSHのパスワード認証を禁止します。
username@server
sudo vi /etc/ssh/sshd_config
/etc/ssh/sshd_config
--PasswordAuthentication yes
++PasswordAuthentication no
最後にsshdを再起動して、設定を有効します。
sudo service ssh restart
クライアントからSSH接続してみて、パスワードが要求されなければOKです。
ssh -p 12345 -i ~/.ssh/id_rsa username@server_ip_or_domain
クライアントのSSH設定(省略可)
SSH接続するたびにポート番号、そしてIPアドレスまたはドメインを入力するのは大変なので、クライアントの.sshフォルダに設定を記憶するconfigファイルを置くと楽です。
~/.ssh/config Host myhostname Hostname server_ip_or_domain Port 12345 User username IdentityFile ~/.ssh/id_rsa
接続してみます。
ssh myhostname