柴ブログ

プログラミング奮闘記

Macからリモートサーバーへssh接続する

はじめに

僕は現在「フィヨルドブートキャンプ」というプログラミングスクールでプログラミングを勉強中です。

bootcamp.fjord.jp その中で、今回のタイトルであるリモートサーバーへのssh接続を自分で設定するプラクティスがあり、復習もかねてまとめておこうと思います。

実行環境

  • リモートサーバー:さくらVPSで契約したサーバー。OSはDebian10.4。
  • クライアント:MacOS Catalina10.15.5。

やりたいこと

  • DebianMacからssh接続する。
  • 接続する際の設定
    • ポートをデフォルトの22から変更する。
    • Rootユーザーでのログインを禁止する。
    • パスワードログインの禁止、公開鍵でのログインのみできるようにする。

手順

サーバー側

  • sshのインストール。
$ sudo aptitude update
$ sudo aptitude install ssh
  • 設定ファイルのバックアップを取り、設定ファイルを開く。以降、設定ファイル内の書き換えを列挙していく。
$ sudo cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.org
$ sudo vi /etc/ssh/sshd_config
#Port 22
↓
Port 任意の番号
  • rootユーザーでの接続を禁止する。
#PermitRootLogin yes
↓
PermitRootLogin no
  • パスワードログインの禁止
#PasswordAuthentication yes
↓
PasswordAuthentication no
  • 公開鍵でのみの接続をする設定。以下の部分のコメントアウトを外す。RSAAuthentication yesは最初から設定ファイルになかったため自分で記入した。
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
#ChallengeResponseAuthentication no
#UsePAM yes
↓
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
ChallengeResponseAuthentication no
UsePAM yes
RSAAuthentication yes

ちなみに書き換えたこれらの表記の意味は以下の通り。

  • PubkeyAuthentication...公開鍵認証の許可するかどうか。
  • AuthorizedKeysFile...公開鍵の保存場所を指定。
  • RSAAuthentication...RSA認証の許可するかどうか。
  • ChallengeResponseAuthentication...チャレンジレスポンス認証の許可するかどうか。
  • UsePAM ...PAMを使うかどうか。

ここまで設定を変更したら設定を反映させるため一度sshを再起動する。

$ sudo /etc/init.d/ssh restart

クライアント側

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -f client_rsa -t rsa -b 2048
  • クライアントにキーペアを登録
$ ssh-add -K ~/.ssh/id_rsa
  • 出来た公開鍵(id_rsa.pub)をリモートサーバー側へ登録しますが、今回はコピペで対応しました。id_rsa.pubを開いて内容をコピー。

サーバー側

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh
$ touch authorized_keys
  • 設定は以上。クラアント側から接続をしてみる。
$ ssh -p 設定したポート番号 サーバーのユーザー名@サーバーのIPアドレス

接続できればOK。

参考