準備
文字化け対応
.bashrc
case $TERM in
linux) LANG=c;;
*) LANG=ja_JP.UTF-8;;
esac
ssh有効
$ sudo apt-get install openssh-server
$ sudo service ssh status
ポートの変更
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
$ sudo vi /etc/ssh/sshd_config
Port 22 -> Port xxxxx
PermitRootLogin yes -> PermitRootLogin no
ssh鍵認証設定
鍵生成
サーバー
$ ssh-keygen -t rsa
* パスフレーズ入力
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
秘密鍵転送
クライアント
scp -P ポート番号 username@xxx.xxx.xxx.xxx:/home/username/.ssh/id_rsa ~/.ssh/id_rsa.ホスト名
.ssh/config 設定
クライアント
Host XXXX
HostName xxx.xxx.xxx.xxx
Port ポート番号
User username
IdentityFile ~/.ssh/id_rsa.ホスト名
Protocol 2
パスワード接続を無効にしてssh再起動
サーバー
$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes -> PasswordAuthentication no
特定のユーザーのみssh接続可能に
サーバー
echo "AllowUsers ユーザー名" | sudo tee -a /etc/ssh/sshd_config
SSHの接続要求を制限
サーバー
MaxStartups 2:90:5
* 2つまでの接続要求を受け付け、これを超えると90%の確率で接続要求を拒否し、5つを超えるとすべて拒否
リスタート
$ sudo service ssh restart
#ファイアーウォールの設定
デフォルトをすべて拒否からスタート
$ sudo ufw default deny
ファイアーウォールを有効に設定
$ sudo ufw enable
$ sudo ufw deny 22
$ sudo ufw limit from 192.168.xxx.xxx/24 to any port xxxxx
$ sudo ufw allow 80
$ sudo ufw allow 443
$ sudo ufw status verbose
* 確認