MacからDebian(さくらVPSサーバー)にssh接続する

ssh接続の設定が初心者には難しかったので備忘録を残します。
サーバー:Debian10.6
クライアント:macOS catalina10.15.7

1. (Macから)(Debianに)ssh接続をパスワード認証で行う

まずはいったんパスワード認証で接続する(後にパスワード認証は無効にする)。

  • ssh root@xxx.xxx.xx.xxx
    rootではデフォルトで拒否される(さくらVPSの場合)
  • ssh -l username xxx.xxx.xx.xxx
    一般ユーザーでは認証される

参考資料
ネコでもわかる!さくらのVPS講座 ~第二回「サーバーをさわってみよう!」 | さくらのナレッジ

2. (Debianで)sshサーバーの設定を変更して、rootで直接アクセスできないようにする

root権限で大切なファイルを消してしまうのを避けるため。

  1. cd /etc/ssh
  2. cp sshd_config sshd_config.old
  3. vim sshd_config
  4. #PermitRootLogin yesPermitRootLogin no
  5. sudo systemctl restart ssh
    sshdの再起動

3. (Debianで)sshサーバーのポート番号を変更する

セキュリティーホールを探す検索ロボットによる攻撃を避けるため。

  1. cd /etc/ssh
  2. cp sshd_config sshd_config.old
  3. `vim sshd_config
  4. #Port 22Port xxxxx
    xxxxxは新しいポート番号
    (ポート番号は0~65535番まであるが、0~1023のウェルノウンポートは避ける)(できるだけ大きい番号の方がいい)
  5. sudo systemctl restart ssh sshdの再起動

設定の確認
- ssh -p xxxxx -l username xxx.xxx.xx.xxx
- ssh -p 22 -l username xxx.xxx.xx.xxx 22番ポートではログインできない

参考資料
ウェルノウンポート(well-knownポート)とは - IT用語辞典 e-Words
SSHのポート番号を変更 - SSHサーバーの設定 - Linux入門 - Webkaru

4. (Macから)(Debianに)ssh接続を鍵認証で行う

セキュリティーホールを探す検索ロボットが適当なパスワードを入れて検索しているので、パスワード認証を無効にするため。

1) (Debianで).sshディレクトリを作成する

  1. mkdir ~/.ssh
  2. chmod 700 ~/.ssh

2) (Macで)RSA鍵を作成する

  1. ssh-keygen -t rsa パスワード不要ならEnter
  2. ls ~/.ssh 作成した鍵を確認する

3) (Macで)作成した公開鍵をDebianに送る

  1. scp -P xxxxx ~/.ssh/id_rsa.pub username@xxx.xxx.xx.xxx:~/.ssh/authorized_keys

4) (Debianで)受け取った公開鍵のパーミッションを変更する

  1. cd ~/.ssh
  2. chmod 600 authorized_keys
    所有者(自分のアカウント)だけが読み書きできる

5) (Macで)公開鍵でパスワードなしでssh接続できるか確認する

-ssh -p xxxxx username@xxx.xxx.xx.xxx

6) (Debianで)ssh接続を公開鍵認証のみにし、パスワード認証を不許可にする

-cd /etc/ssh
-cp sshd_config sshd_config.old
-vim sshd_config
-#PasswordAuthentication yesPasswordAuthentication no
-sudo systemctl restart ssh
sshdの再起動

参考資料
Mac OS X から Linuxサーバ へ、RSA 鍵を用いて SSH 接続する - joker8phoenix's diary
初期設定