0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ネットワーク経由でsshする

Last updated at Posted at 2022-06-01

やりたいこと

ホスト側からサーバーにインターネット経由でsshを行えるようにする。
サーバー側ipは192.168.1.2とする。
ホスト名はpiとする。
$から始まるのはコマンドです。

Linux

ユーザーの追加

サーバー側にuserを追加しておく。

$ sudo su -
$ useradd -m ユーザー名:pi
$ passwd ユーザー名:pi
    or
$ adduser ユーザー名:pi

間違えたとき

$ userdel -r ユーザー名

参考にしたサイト

脳内サイト。

ネットワーク系

ipを固定する

追記:50-cloud-init.yamlを触るのは宜しくないらしい
https://qiita.com/yas-nyan/items/9033fb1d1037dcf9dba5

50-cloud-init.yamlを変更し、ネットワークを更新する。

$ sudo vi /etc/netplan/50-cloud-init.yaml

network:
    ethernets:
        eth0:
            addresses:
            - 192.168.1.2/24
            gateway4: 192.168.1.1
            dhcp4: false
            dhcp6: false
            accept-ra: false
            nameservers:
                addresses:
                - 192.168.1.1
    version: 2
    
$ sudo netplan apply
  • 書き方
network:
    ethernets:
        <デバイス>:
            addresses:
            - <IPアドレス>
            gateway4: <デフォルトゲートウェイ>
            gateway6: <v6のデフォルトゲートウェイ>
            dhcp4: false
            dhcp6: false
            accept-ra: false
            nameservers:
                addresses:
                - <DNSネームサーバー>
    version: 2

参考にしたサイト

ip固定について

ssh

sshインストールしておく。

$ sudo apt update && sudo apt upgrade -y

$ sudo apt install ssh

鍵を用意する

ホスト側に鍵を生成する

$ ssh-keygen -t rsa
enter連打。(好ましくないので設定したい方は参考にしたサイトにて)

鍵をサーバー側に渡す

$ ssh-copy-id pi@192.168.1.2

接続してみる。

$ ssh pi@192.168.1.2

設定変更

パスワード認証でのSSH接続を無効化する。

$ sudo vi /etc/ssh/sshd_config

# Port 22
# Port 自由なポート番号
Port 2222

# PasswordAuthentication yes
PasswordAuthentication no

# PermitRootLogin yes
PermitRootLogin no

# MaxSessions 10
# 最大同時接続。なるべく少なく
MaxSessions 1

# 一番下に追記
AllowUsers pi
# これだけでも良いが pi@接続元IP の方が好ましい
$ sudo sshd -t
構文チェック

$ sudo systemctl restart sshd.service
または
$ sudo reboot

$ exit

$ ssh -p 2222 pi@192.168.1.2

参考にしたサイト

ip固定について
sshについて
特定のuser

ポート開放

ファイアウォールをサーバー側にインストールしておく

$ sudo apt install ufw

一旦すべてのポートを拒否する

$ sudo su -
$ ufw default deny

sshのポートを開けて確認する

$ ufw enable
$ ufw allow 2222
$ ufw status

こっちのほうが好ましい
例:

ufw allow from 192.168.1.0/24 to any port 2222

192.168.1.0は接続先ip

ルーターによるポート開放。

ここが難点、だがルーターによって設定方法が違うので省きます。

参考にしたサイト

脳内サイト。

接続系

ログ監視

サーバー側で以下コマンドで確認できる。

$ sudo tail -f -n 3 /var/log/auth.log

不正アクセス対策

参考リンク

接続してみる

ip確認リンク
ip確認(コマンド)

$ curl ifconfig.io
ssh -p ルーターで設定したポート pi@確認したip

接続簡略化

毎回このコマンドを打つのは面倒なので以下ファイル作成

.ssh/config

# homeサーバー
Host pi
    HostName 192.168.1.2
    Port 2222
    User pi
    IdentityFile ~/.ssh/id_rsa

Host home
    HostName 確認したip
    Port ルーターで設定したポート
    User pi
    IdentityFile ~/.ssh/id_rsa
$ ssh home

参考にしたサイト

ssh省略について

以上。

注意事項

  • 内部LANのクライアントからはグローバルIPでSSH接続出来ないので注意してください。
  • 自己責任でお願いします。

経緯

自宅サーバーを作ってみたかったから。

動作環境

raspi4b
ubuntu-21.04

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?