Skip to content

Bluehorse-hub/remote-ssh-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

【入門】Ubuntuにリモート接続しよう

実行環境

  • Ubuntu22.04.4LTS
  • Windows10

目標

持っているノートPCで研究室のPCに家から繋いで操作できるようにする

注意

  • ノートPCから研究室のPCに繋ぐのが目標だが、どっちのPCで行う設定なのかを常に気を付けながら設定しよう

  • 設定段階ではリモート接続できないので研究室に来て設定しよう

0章 IPアドレスを確認しよう

この章の内容は研究室のPCで行う

IPアドレスとは Wikipediaより

IPアドレス(アイピーアドレス、英: IP address)は、Internet Protocol(IP)で通信相手を識別するための番号である。インターネットアドレスとも呼ばれる.

リモート接続するにはこのIPアドレスを確認することが必須

IPアドレスを確認

ifconfigでIPアドレスを確認するのは古いらしいのでip -aで調べる

ip -a

出力の中の2: enp0s31f6の様な欄にあるinet xx.xx.xx.xx/xxxx.xx.xx.xxがお目当てのもの

以降の手順で使う時があるので確認しておこう

1章 Ubuntuにサーバー機能を入れる

この章の内容は研究室のPCで行う

サーバー機能のインストール

Ubuntuにサーバー機能を入れることでノートPCからリモートで繋ぐことができるようになる

sudo apt install openssh-server

サーバー機能は動いている?

念の為、サーバーが起動しているか確認しよう

sudo systemctl status ssh

以下の様な出力がされ、Active: active (running)になっていればOK

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-08-30 16:18:34 JST; 1 week 0 days ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 473899 (sshd)
      Tasks: 1 (limit: 57565)
     Memory: 4.0M
        CPU: 1.086s
     CGroup: /system.slice/ssh.service
             └─473899 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

ターミナルを閉じて次に進もう(閉じる際に警告が出ていても閉じてOK)

もし、起動していなかったら

sudo systemctl restart ssh

2章 セキュリティの要である鍵

この章の内容は全てノートPCで行う

接続のための鍵を作ろう

SSH接続する際に秘密鍵・公開鍵を用いるので、まずはその鍵を作る

ssh-keygen -t ed25519

実行中にパスフレーズの設定や生成する位置を指定できるが、全ていじらなくていいのでEnterを連打

鍵の確認

鍵を生成したディレクトリ(デフォルトでは~/.ssh)に移動する

cd .ssh

実際に中身を確認する

ls 
config   id_ed25519  id_ed25519.pub  known_hosts  known_hosts.old

id_ed25519id_ed25519.pubがあればOK

  • 秘密鍵:id_ed25519

  • 公開鍵:id_ed25519.pub

この2つはセキュリティ面でものすごく重要なので絶対に他人に見せないこと!

3章 試しに繋いでみる

この章の内容は全てノートPCで行う

初めてのSSH接続

SSH接続で必要なものはusernamehostnameの2つ

  • username:研究室のPCでターミナルを開いた時の@の左側

  • hostname:研究室のPCのIPアドレス

これら2つを確認した上でSSH接続

ssh username@hostname

ssh shungen@xx.xx.xx.xx

接続できたかの確認

ターミナルを開いた時の表示される名前が研究室のPCと同じものだったら成功

4章 接続方法を改良しよう

この章の内容は全てノートPCで行う

設定ファイルを作ろう

.sshの中にconfigと言う名前でファイルを作る

すでにある場合は作らなくて良い

configの中身を変更しよう

configを編集する

Host free
   HostName    xx.xx.xx.xx  
   Port        22
   IdentityFile    ~/.ssh/id_ed25519
   User        username
  • Host:好きな名前にして大丈夫(日本語にはしないこと)

  • HostName:研究室のPCのIPアドレス

  • Port:22にする

  • IdentityFile:秘密鍵のパス(デフォルトなら~/.ssh/id_ed25519

  • User:研究室のPCでターミナルを開いた時の@の左側

設定ファイルの恩恵

configを設定することでHostに設定した名前で接続できる

ssh free

5章 公開鍵の受け渡し

事前準備は研究室のPC、それ以外はノートPCで行う

事前準備

研究室のPCに.sshディレクトリが無いと今後の操作でバグるので確認しよう

ls -a

.sshは元からあればhomeディレクトリ内に隠されているのでオプションの-aをつける

無ければ作る!

作り方の例(他にもGUIで作ったり、vscodeから作ったりしても良い)

mkdir .ssh

公開鍵を送る

ノートPCで作った公開鍵を研究室のPCに送る

usernamehostnameに気を付けて実行しよう

scp ~/.ssh/id_ed25519.pub username@hostname:~/.ssh/register_key

6章 公開鍵の登録

この章の内容は研究室のPCで行う

.sshに移動しよう

cd .ssh

公開鍵の設定

5章でid_ed25519.pubregister_keyとして送信したので、register_keyauthorized_keysに追加する

cat register_key >> authorized_keys

ファイルの権限をchmod 600にする

chmod 600 authorized_keys

register_keyはいらないので消す

rm register_key

7章 セキュリティに関する設定

この章の内容は研究室のPCで行う

最難関ポイント...

読み取り専用ファイルをいじったり、深いパスのファイルを開いたりするので難しいけど頑張ろう!

読み取り専用ファイルは普通には編集できないので、この章はvscodeで行うと楽になる

SSHデーモンの設定ファイルに辿り着く

/etc/ssh/sshd_configに辿り着く

画像はUbuntuのGUIだがvscodeでも手順は同じ

デフォルトではhomeからのスタートなのでOther Locationsに移動

ssh1

一番上にあるComputerを選択

ssh2

etcを見つけることができたらそのままssh/sshd_configを開く

ssh3

SSHデーモンを設定する

sshd_configを開いたら、最終行に次のコードをコピペする

Port 22
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitEmptyPasswords no
SyslogFacility AUTHPRIV
LogLevel VERBOSE

気をつける箇所

  • Port:SSHのポート番号(22にする)

その他の箇所

  • 要は鍵以外で接続できないようにしている

8章 ファイアウォールの設定

この章の内容は研究室のPCで行う

ファイアウォールとは Wikipediaより

ファイアウォール(英: Firewall)は、コンピュータネットワークにおいて、ネットワークの結節、コンピュータセキュリティの保護、その他の目的のため、通過させてはいけない通信を阻止するシステムを指す。

ファイアウォールにも様々な種類があり、UbuntuではUFWが使われている

実際に設定する

ファイアウォールの現在の状態を確認する

sudo ufw status

Status: activeなら、一旦無効化する

sudo ufw disable

デフォルトのポートを閉じる

sudo ufw default deny

自分が許可したポートを開く(今回は22

sudo ufw allow 22

SSHデーモンを再起動する

sudo systemctl restart ssh

ファイアウォールを起動する

sudo ufw enable

接続確認

ここまで設定してしっかり繋がるか確認

ssh free

ここで繋がらなかったら相談

9章 tailscaleでリモート接続

この章の内容はノートPCと研究室のPCで行う

tailscaleとは

登録したPCでVPN接続できるようにするサービス

tailscaleをダウンロードする

ノートPCで行う

ここからダウンロード

ノートPCのOSに合ったものを選ぶ

tailscaleの設定

  • 指示に従って設定する

  • 設定が完了したらタスクバーなどにあるアイコンをクリック

  • Connectedにする

  • Account SettingsからAdmin Consoleを選択

tailscale

研究室のPCと自分のノートPCの2つがあればOK

研究室のPCのIPアドレスを確認する

configを変更する

ノートPCで行う

.ssh内のconfigを開く

Host free
   HostName    xx.xx.xx.xx  
   Port        22
   IdentityFile    ~/.ssh/id_ed25519
   User        username

HostNameをさっき確認したIPアドレスに変更する

10章 vscodeに拡張機能を入れる

この章の内容は全てノートPCで行う

Remote-SSHを入れよう

vscodeの拡張機能の欄からRemote-SSHを検索

SSH

この拡張機能をインストールする

最終章 リモート接続!

この章の内容は全てノートPCで行う

学外のWi-Fiに繋ぐ

自宅のWi-Fiなどの学外のWi-Fiに繋ぐ

tailscaleを起動

タスクバーなどにあるtailscaleのアイコンをクリックしConnectedにする

vscodeで接続

vscode

  • 左下のマークをクリック

  • ホストに接続するを選択

  • 設定した名前のものをクリック

最終確認

エラーが出ずに画面が切り替わり、ターミナルを開いて研究室のPCの名前が出てくれば成功!

参考文献

Linuxサーバー:SSH設定

tailscaleの導入と使い方

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors