- Ubuntu22.04.4LTS
- Windows10
持っているノートPCで研究室のPCに家から繋いで操作できるようにする
-
ノートPCから研究室のPCに繋ぐのが目標だが、どっちのPCで行う設定なのかを常に気を付けながら設定しよう
-
設定段階ではリモート接続できないので研究室に来て設定しよう
この章の内容は研究室のPCで行う
IPアドレスとは Wikipediaより
IPアドレス(アイピーアドレス、英: IP address)は、Internet Protocol(IP)で通信相手を識別するための番号である。インターネットアドレスとも呼ばれる.
リモート接続するにはこのIPアドレスを確認することが必須
ifconfigでIPアドレスを確認するのは古いらしいのでip -aで調べる
ip -a出力の中の2: enp0s31f6の様な欄にあるinet xx.xx.xx.xx/xxのxx.xx.xx.xxがお目当てのもの
以降の手順で使う時があるので確認しておこう
この章の内容は研究室の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
この章の内容は全てノートPCで行う
SSH接続する際に秘密鍵・公開鍵を用いるので、まずはその鍵を作る
ssh-keygen -t ed25519
実行中にパスフレーズの設定や生成する位置を指定できるが、全ていじらなくていいのでEnterを連打
鍵を生成したディレクトリ(デフォルトでは~/.ssh)に移動する
cd .ssh
実際に中身を確認する
ls
config id_ed25519 id_ed25519.pub known_hosts known_hosts.old
id_ed25519とid_ed25519.pubがあればOK
-
秘密鍵:
id_ed25519 -
公開鍵:
id_ed25519.pub
この2つはセキュリティ面でものすごく重要なので絶対に他人に見せないこと!
この章の内容は全てノートPCで行う
SSH接続で必要なものはusernameとhostnameの2つ
-
username:研究室のPCでターミナルを開いた時の@の左側 -
hostname:研究室のPCのIPアドレス
これら2つを確認した上でSSH接続
ssh username@hostname
例
ssh shungen@xx.xx.xx.xx
ターミナルを開いた時の表示される名前が研究室のPCと同じものだったら成功
この章の内容は全てノートPCで行う
.sshの中に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
事前準備は研究室のPC、それ以外はノートPCで行う
研究室のPCに.sshディレクトリが無いと今後の操作でバグるので確認しよう
ls -a
.sshは元からあればhomeディレクトリ内に隠されているのでオプションの-aをつける
無ければ作る!
作り方の例(他にもGUIで作ったり、vscodeから作ったりしても良い)
mkdir .ssh
ノートPCで作った公開鍵を研究室のPCに送る
usernameとhostnameに気を付けて実行しよう
scp ~/.ssh/id_ed25519.pub username@hostname:~/.ssh/register_key
この章の内容は研究室のPCで行う
cd .ssh
5章でid_ed25519.pubをregister_keyとして送信したので、register_keyをauthorized_keysに追加する
cat register_key >> authorized_keys
ファイルの権限をchmod 600にする
chmod 600 authorized_keys
register_keyはいらないので消す
rm register_key
この章の内容は研究室のPCで行う
読み取り専用ファイルをいじったり、深いパスのファイルを開いたりするので難しいけど頑張ろう!
読み取り専用ファイルは普通には編集できないので、この章はvscodeで行うと楽になる
/etc/ssh/sshd_configに辿り着く
画像はUbuntuのGUIだがvscodeでも手順は同じ
デフォルトではhomeからのスタートなのでOther Locationsに移動
一番上にあるComputerを選択
etcを見つけることができたらそのままssh/sshd_configを開く
sshd_configを開いたら、最終行に次のコードをコピペする
Port 22
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitEmptyPasswords no
SyslogFacility AUTHPRIV
LogLevel VERBOSE
気をつける箇所
Port:SSHのポート番号(22にする)
その他の箇所
- 要は鍵以外で接続できないようにしている
この章の内容は研究室の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
ここで繋がらなかったら相談
この章の内容はノートPCと研究室のPCで行う
登録したPCでVPN接続できるようにするサービス
ノートPCで行う
ノートPCのOSに合ったものを選ぶ
-
指示に従って設定する
-
設定が完了したらタスクバーなどにあるアイコンをクリック
-
Connectedにする -
Account SettingsからAdmin Consoleを選択
研究室のPCと自分のノートPCの2つがあればOK
研究室のPCのIPアドレスを確認する
ノートPCで行う
.ssh内のconfigを開く
Host free
HostName xx.xx.xx.xx
Port 22
IdentityFile ~/.ssh/id_ed25519
User username
HostNameをさっき確認したIPアドレスに変更する
この章の内容は全てノートPCで行う
vscodeの拡張機能の欄からRemote-SSHを検索
この拡張機能をインストールする
この章の内容は全てノートPCで行う
自宅のWi-Fiなどの学外のWi-Fiに繋ぐ
タスクバーなどにあるtailscaleのアイコンをクリックしConnectedにする
-
左下のマークをクリック
-
ホストに接続するを選択 -
設定した名前のものをクリック
エラーが出ずに画面が切り替わり、ターミナルを開いて研究室のPCの名前が出てくれば成功!





