リモート接続とネットワーク設定 – Debian Linuxによる自宅サーバの構築

自宅サーバ
自宅サーバ

自宅サーバの機器に直接ログインして操作することも可能なのですが、普段使用しているパソコンからリモート接続を行い、サーバを操作します。
また、ネットワーク設定行い、IPアドレスを固定に設定したいと思います。

リモート接続の設定

リモート接続の設定を行います。
自宅サーバにSSHサーバがインストールされている場合、SSHによるリモート接続が可能です。

IPアドレスの確認

まず、自宅サーバのネットワークインターフェイスのIPアドレスを確認します。
自宅サーバに直接ログインし、下記コマンドで確認します。

ip a

私の環境では下記の状態になります。

root@share:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 5c:85:7e:4a:a8:54 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.17/24 brd 192.168.0.255 scope global dynamic enp1s0
       valid_lft 64586sec preferred_lft 64586sec
    inet6 240d:1a:c3f:a00:5e85:7eff:fe4a:a854/64 scope global dynamic mngtmpaddr
       valid_lft 48509sec preferred_lft 48509sec
    inet6 fe80::5e85:7eff:fe4a:a854/64 scope link
       valid_lft forever preferred_lft forever
3: enp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 5c:85:7e:4a:a8:55 brd ff:ff:ff:ff:ff:ff

enp1s0 というインターフェイスに 192.168.0.17 というIPアドレスが割り当てられています。
このIPアドレス宛てにSSHでリモート接続可能です。

ターミナル

普段使用しているパソコンからターミナルを使用し、リモート接続を行います。
WindowsではコマンドプロンプトでSSH接続可能ですが、そのままだと使いづらいのでWSL2+Windows Terminalでの環境で操作します。
maxOSではiTerm2を使用しましょう。

SSH接続

リモート接続では root ユーザには直接ログインできない設定になっています。
設定したユーザ名を使用し、ユーザ名@IPアドレスで接続します。

ssh horatjp@192.168.0.17

パスワードの入力が求められ、正しく入力できれば接続できます。

リモート接続ができるようになれば、自宅サーバの機器にはディスプレイ・キーボードをつながなくとも大丈夫です。
直接自宅サーバを操作したいときにだけ、つなぐとよいでしょう。

再起動やシャットダウンの操作もリモートから行えます。
操作は root ユーザのみ行えます。

以下のコマンドで root でログインできます。

su -

root のパスワードの入力が求められます。

以下が再起動・シャットダウンのコマンドです。

# 再起動
reboot
# シャットダウン
shutdown -h now

ネットワーク設定

現在、IPアドレスは家庭内のルータのDHCPの機能で自動に割り当てられている状態になると思います。
再起動などのタイミングで自宅サーバのIPアドレスが、変更される可能性があります。
変更された場合、リモートからはどのIPアドレスに接続していいかわからなくなります。
そのため、IPアドレスが変わらないようにIPアドレスを固定に設定します。

割り当て可能なIPアドレス

割り当てできるIPアドレスは家庭内のルータの設定により異なります。
下記が一般的によく使われるネットワークの範囲です。

10.0.0.0/24
192.168.0.0/24
192.168.1.0/24

192.168.1.0/24 となっている場合、192.168.1.0 から 192.168.1.255 までがIPアドレスの範囲になります。

192.168.1.0 はネットワークアドレスになり、192.168.1.255 はブロードキャストアドレスになるので、それ以外の254個のIPアドレスが割り当て可能です。

ただし、1つはルータに割り当てられるので実質253個になります。
一般的にルータには一番初めのIPアドレス 192.168.1.1 が割り当てられることが多いと思います。

ですので、192.168.1.2 から 192.168.1.254 のIPアドレスが使用可能です。

ただ、ご自身のパソコンや携帯電話・ネットワーク機器など、すでに使用済みになっているIPアドレスがあるので、それとはかぶらないよう設定する必要があります。

192.168.1.0/24 の場合であれば、192.168.1.100 以上を設定するとかぶる可能性が低いと思います。

固定のIPアドレスの設定

まず、接続してrootになります。
DHCPの設定をコメントアウトにして、固定のIPアドレスを設定します。

vi /etc/network/interfaces

# The primary network interface
allow-hotplug enp1s0
#iface enp1s0f1 inet dhcp
# This is an autoconfigured IPv6 interface
#iface enp1s0f1 inet6 auto

iface enp1s0 inet static
        address 192.168.0.101
        netmask 255.255.255.0
        gateway 192.168.0.1

インターフェイスを再起動します。

ifdown enp1s0;ifup enp1s0

このコマンドでIPアドレスが変更されるので、リモート接続の場合は接続が切れます。
接続が切れた場合は、また接続しなおしてください。
リモート接続ではなく、直接操作している場合は大丈夫です。

設定したIPアドレスで接続できるか確認します。

ssh horatjp@192.168.0.101

もし接続できなければ、自宅サーバを直接操作して内容を確かめてください。

SSH公開鍵認証

現在、SSHサーバへログインする場合は、パスワード認証でログインしています。
公開鍵認証にすることにより、パスワードの入力なしでログインできるようになります。

公開鍵・秘密鍵の作成

まず、クライアント(普段使用しているパソコン)側で公開鍵・秘密鍵を作成します。

SSH接続に必要な情報を保存するディレクトリを作成します。

mkdir -m 700 ~/.ssh

公開鍵・秘密鍵を作成します。

ssh-keygen -t rsa -b 4096 -C "" -f ~/.ssh/id_rsa -N ""

id_rsaid_rsa.pub のファイルが作成されます。
id_rsa.pub の pub は public でこちらが公開鍵になります。
id_rsa が秘密鍵です。

公開鍵の登録

公開鍵を自宅サーバに登録します。

ssh-copy-id -i ~/.ssh/id_rsa.pub horatjp@192.168.0.101

公開鍵認証

公開鍵をサーバに登録したことにより、クライアントの秘密鍵を使って、パスワードなしでログインできるようになります。

ssh -i ~/.ssh/id_rsa horatjp@192.168.0.101

SSH接続設定

SSHの接続情報の設定を ~/.ssh/config に設定できます。
設定することにより、より簡単に接続できるようになります。

クライアント側で設定します。

設定ファイル作成

touch ~/.ssh/config

設定ファイル編集
vi ~/.ssh/config

Host share
    Hostname 192.168.0.101
    User horatjp
    Port 22
    IdentityFile ~/.ssh/id_rsa

Host に設定した名前でサーバにログインできます。

ssh share

SSHサーバの設定

自宅サーバでは設定しなくともいいのですが、公開鍵認証で接続できるようにした場合、SSHサーバの設定をパスワードでログインができないようにする設定を行うことがあります。

こちら設定方法を書いておきますので参考にしてください。
root で設定を行います。

# PermitRootLogin
sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config

# PubkeyAuthentication
sed -i 's/^#\?PubkeyAuthentication.*/PubkeyAuthentication yes/' /etc/ssh/sshd_config

# PasswordAuthentication
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
service ssh restart
service ssh status

SSHサーバ側の話なので、リモート接続ではパスワードでログインできなくなりますが、機器から直接ログインする場合はパスワードでログインします。

おわりに

リモート接続の設定、ネットワーク設定、SSH公開鍵認証など、自宅サーバの運用に必要な手順を詳しく解説しました。
これらの手順にしたがって、自分だけの自宅サーバを構築して、便利に活用してください。

コメント

タイトルとURLをコピーしました