↑ 「FreeBSDで遊ぼう」のページへ

↑ トップページへ

★ [SilverSackの自画自賛] FreeBSDで遊ぼう

★

 家庭内サーバーの構築 - 3. SSHの利用(FreeBSD 11.1~11.2)


家庭内サーバーで余っているノートパソコンをサーバーに充てようとしているので、別にノートパソコンでrootログインしてメンテしてもいいのですが、なるべくそれらしいごっこ遊びを目指していてるので、リモートログインでサーバーメンテをできるようにします。リモートログインはSSH(Secured Shell)で行います。

  1. rc.confの確認
  2. hosts.allowの編集
  3. sshd_configの編集
  4. クライアントからのログイン
  5. 公開鍵認証を利用した場合(参考)

  1. rc.confの確認
  2. インストールするサービスを選択する時にsshdを選択しているので、sshdが有効になっているはずですが、念のためコマンドプロンプトで、

      # ee /etc/rc.conf[ENTER]
    と打ってetc/rc.confを開き、以下の記載があるかどうかを確認します。なければ追記します。
      sshd_enable="YES"

  3. hosts.allowの編集
  4. デフォルトではどこからのアクセスも受け付けるので家庭内ネットワークに限定します。各種サービスの利用許可を設定するhosts.allowに受け付けるIPアドレスを設定します。コマンドプロンプトで、

      # ee /etc/hosts.allow[ENTER]

    と打って/etc/hosts.allowを開きます。

    1. 23行目あたりの
        ALL : ALL : allow

      をコメントアウトするか削除します。コメントアウトする場合はこんな感じです。

        # ALL : ALL : allow
    2. 28行目あたりの#sshdで始まる行の記載を
        #sshd : All : allow
      を、以下のように変更します。
        sshd : 192.168.10.0/255.255.255.0 : allow
      IPアドレスとサブネットマスクは、それぞれの環境に合わせてください。

  5. sshd_configの編集
  6. 家庭内サーバーですから、簡便に使える設定にします。rootユーザーからパスワードを使ってログインできるようにします。コマンドプロンプトで、

      # ee /etc/ssh/sshd_config[ENTER]

    と打って、sshd_configを開きます。

    1. rootユーザーがログインできるように、PermitRootLoginをyesにします。37行目あたりの
        #PermitRootLogin no
      を以下のように変更します。
        PermitRootLogin yes
    2. パスワードによる認証を有効にするために、PasswordAuthenticationをyesにします。62行目あたりの
        #PasswordAuthentication no
      を以下のように変更します。
        PasswordAuthentication yes

    他の設定はPermitEmptyPasswordsも含めてデフォルトのままにします。

  7. クライアントからのログイン
  8. Windows10がバージョン1803からSSHに対応しましたので、これを前提にいきます。

    立ち上げて、以下のコマンドを打ちます。

      > ssh   root@192.168.10.2[ENTER]

    パスワードを入力したら、サーバーにログインできます。

  9. 公開鍵認証を利用した場合(参考)
  10. ログインについては、公開鍵による認証を推奨しているようで、そのパターンもおさらいしておきます。説明のため、SSHを使用するユーザーはmasaoとします。

    1. sshd_configの編集
    2. コマンドプロンプトで、

        # ee /etc/ssh/sshd_config[ENTER]

      と打って、sshd_configを開きます。

      1. アクセスできるユーザーをmasaoに限定するため、AllowUsersにmasaoを設定します。以下の内容を追記します。
          AllowUsers masao
      2. Portを10101にします(10101は、わかりにくい番号なら何番でもいいです、これでポート番号の決め打ちができなくなります)。17行目あたりの
          #Port 22
        を以下のように変更します。
          Port 10101
      3. ChallengeResponseAuthentication noをnoにします(パスワードによるログインをできなくするためです、PasswordAuthentication=noだけでは不十分だとか)。66行目あたりの
          #ChallengeResponseAuthentication yes
        を以下のように変更します。
          ChallengeResponseAuthentication no

      他の設定はデフォルトのままです(デフォルトから変更したところはデフォルトに戻してください)。

    3. サーバーでの認証鍵の作成と配置
      1. 認証鍵の作成
      2. この作業は、ログインユーザーであるmasaoでログインして行います。まず、masaoのホームディレクトリにsshのディレクトリを作成し、アクセス権限を設定します。サーバーで以下のコマンドを実行します。

          % mkdir -p  /home/masao/.ssh[ENTER] 
          % chmod 0700  /home/masao/.ssh[ENTER] 

        認証鍵を作成します。サーバーで以下のコマンドを実行します。

          % ssh-keygen -t  rsa[ENTER]

        これで、/home/masao/.sshフォルダにid_rsa(秘密鍵)とid_rsa.pub(公開鍵)が作成されています。また、この作成中にパスフレーズの入力を求められますが、これも記録しておきます。

      3. 公開鍵のマージ
          % ls -al /home/masao/.ssh[ENTER]

        と打って、.sshディレクトリにauthorized_keysファイル(orディレクトリ)がないことを確認します。

          % cp /home/masao/.ssh/id_rsa.pub /home/masao/.ssh/authorized_keys[ENTER]

        と打って、公開鍵をauthorized_keysファイルにコピーします。authorized_keysファイルがある場合は、

          % cat /home/masao/.ssh/id_rsa.pub >> /home/masao/.ssh/authorized_keys[ENTER]

        として、id_rsa.pubの内容をauthorized_keysファイルに追記します。最後にauthorized_keysのアクセス権限を設定します。サーバーで以下のコマンドを打ちます。

          % chmod 0600  /home/masao/.ssh/authorized_keys[ENTER]
      4. 秘密鍵のクライアントへの設置
      5. 先に作った秘密鍵id_rsaファイルをクライアントにコピーします。コマンドプロンプトでフルパスを入力しますので、手間を省くために浅い階層にしましょう(WindowsならC\:ssh、FreeBSDなら/home/masao/.sshか)。

    4. クライアントからのログイン
    5. Windows10がバージョン1803からSSHに対応しましたので、これを前提にいきます。

      • Windows10(バージョン1803以降)は、コマンドプロンプトを
      • FreeBSDでは端末を

      立ち上げて、以下のコマンドを打ちます。

        > ssh   -p 10101  -i (秘密鍵のあるディレクトリ)id_rsa  masao@192.168.10.2[ENTER]

      パスフレーズを入力したら、サーバーにログインできます。

[その他の情報]

なお、このページを書くに当たって、以下の記事を参考にしました。

(2018年 7月28日 記)