Tonysan’s blog

ほぼ自分のための Tips 集


刺され!

リモート接続の設定

リモート接続の設定

具体的にはメイン機というか、Windows11 のパソコンのターミナルから Ubuntu機を操作したいので、基本の SSH と Cockpit を入れます。Webmin ? そこまでいらんかな。

SSHでログインする

まずは SSH のインストール。これは Ubuntu機 のターミナルで行う。

sudo apt install openssh-server

SSH port 22 を変更

/etc/ssh/sshd_config に記述。
このやり方でできるのは 22.04 までらしい。
まず設定ファイルをバックアップ。.org 付けてコピー。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

設定ファイルを開き、#port 22 の下あたりに port 2549 とか任意のポート番号を追加して、サービスを再起動。

sudo nano /etc/ssh/sshd_config
    :
    #port 22
    port 2549
    :
systemctl restart ssh

22.10 以降では別の設定ファイル /lib/systemd/system/ssh.socket を開いて、ListenStream=22 の値を任意のポート番号に書き換えて、
設定変更を反映。
Unit ファイル群の変更を Systemd に反映。

sudo cp /lib/systemd/system/ssh.socket /lib/systemd/system/ssh.socket.org
sudo nano /lib/systemd/system/ssh.socket
    :
    ListenStream=2549
    :
sudo systemctl restart ssh.socket
sudo systemctl daemon-reload

IPアドレス

Ubuntu機 のIPアドレスMACアドレスを確認して、

ip a

静的アドレスを設定するかルーターの固定アドレスに登録。(うちはルーターで一元管理)

ufw (ファイアウォール)の設定

Ubuntuufw 自体初めから入っていてインストールする必要はない。
初期状態はファイアウォール無効になっているので、すべての通信が許可されている。
有効化するとデフォルトはALL incoming 廃棄、outgoing 許可になる。
つまり、外への通信はすべて許可、外からアクセスされるものはすべて廃棄されて中に入れない。

ここでは port 2549 へ 192.168.1.*** からのアクセスのみ、かつ「30秒間の間に6回以上接続を試みた IP アドレスを許可しない」を設定。有効化して、設定内容を確認しておく。

sudo ufw limit from 192.168.1.0/24 to any port 2549
sudo ufw enable
sudo ufw status
To                         Action      From
--                         ------      ----
2549                       LIMIT IN    192.168.1.0/24

ここから Windows機 で。
ターミナル(PowerShell)を起動して、

ssh jiji@192.168.1.22 -p 2549

で、パスワードを入れて Ubuntu機 にログイン。
(ユーザー名とかIPアドレス、それから先程設定したポート番号も、ここでは架空のものに置き換えています)

公開鍵認証

そのまま SSH で接続したままの作業。
Ubuntu機 のホームディレクトリ直下に .ssh フォルダ作成して、パーミッション設定。

mkdir ~/.ssh
chmod 700 ~/.ssh

ここで一旦 SSH からログアウトして、

exit

プロンプトが PS C:\Users\jeff> になったら、SSH キーペア(公開鍵と秘密鍵)を生成する。

mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t ed25519 -f nekosu_key

暗号形式を ed25519 に、ファイル名を nekosu_key に指定。
生成すると、.ssh フォルダ内に、秘密鍵 nekosu_key と、公開鍵 nekosu_key.pub が生成される。

作った公開鍵を、Ubuntu 機の .ssh フォルダ内に転送。
ポート指定は -P。こちらは大文字なので注意。

cd ~/.ssh
scp -P 2549 nekosu_key.pub jiji@192.168.1.22:~/.ssh/

ssh-copy-idPowerShell で使えなかったから手動で登録する。

ssh jiji@192.168.1.22 -p 2549
cd ~/.ssh
cat nekosu_key.pub >> authorized_keys
chmod 600 authorized_keys
rm -f nekosu_key.pub

ssh コマンドで Ubuntu機 にログインし、.ssh ディレクトリに移動。
cat コマンドで nekosu_key.pub の中身を authorized_keys というファイルに、追記。(ファイルがなかったら勝手に作られる)
chmod コマンドでファイルの権限を 600 に変更。
送信した公開鍵はもう不要なので rm コマンドで削除。

/etc/ssh/sshd_config を開いて #PubkeyAuthentication yesPubkeyAuthentication yes に変更してサービスを再起動する。

sudo nano /etc/ssh/sshd_config
    :
PubkeyAuthentication yes
    :
sudo systemctl restart ssh

一旦、ログアウトして、

jiji@KiKis-delivery-service:~$ exit
ログアウト
Connection to 192.168.1.22 closed.
PS C:\Users\jeff> ssh -i ~/.ssh/nekosu_key jiji@192.168.1.22 -p 2549

で、ログインできたら公開鍵認証はOK。
これでジジが、キキの Ubuntu機 にジェフの Windows機 から鍵認証でSSH接続できるようになりました。

ちなみに SCP するときは、

scp -P 2549 -i ~/.ssh/nekosu_key [送信ファイル] jiji@192.168.1.22:[送る場所]

オプションの順番が違うとエラーになる。

よりセキュアにしたいなら、先程の /etc/ssh/sshd_config の何行目かにある #PasswordAuthentication yesPasswordAuthenticaiton no に書き換えて保存、サービス再起動で、パスワード認証では入れなくなる。

Cockpit の導入

パッケージのインストール。

sudo apt install cockpit
systemctl enable cockpit.socket
sudo ufw allow 9090
sudo ufw reload

ファイアウォールでポート 9090 を開けておく。

Windows の Web ブラウザで、[Ubuntu機 の IPアドレス]:9090/ へアクセス。


SSHポート番号、キーペアの名称などはフィクションです。自分の設定に置き換えてください。

Ubuntu をインストールして自分なりに最初にすることのまとめ

Ubuntu をインストールして自分なりに最初にすることのまとめ

22.04LTS デスクトップ版をインストールしていきます。
23.10 デスクトップ版でも確認済みです。
そろそろ 24.04LTS が出るので備忘録的に。

とりあえず最初

Ubuntu Desktop 日本語 Remix 。
インストールは特になにも考えずにイエスマンで。
インストール中、「オンラインアカウントへの接続」の設定をしているくらいにシステムアップデートのアナウンスが出るのでOKする。

フォルダ名を英語へ

フォルダ名が日本語だと、コマンドラインでだんだん面倒になってくるので最初に。

LANG=C xdg-user-dirs-gtk-update

ターミナル起動のショートカットキー Ctrl + Alt + T

さらにソフトウェアを更新

sudo apt update
sudo apt upgrade
apt list --upgradable
sudo apt install リストに表示されたもの
apt list --upgradable
sudo apt install リストに表示されたもの
    : 繰り返して全部インストールされたら
sudo apt autoremove

何を変更するのか確認するためにも、いちいち list --upgradable して install したけれど、面倒であれば、

sudo apt full-upgrade

でやってくれる。
でも何かあると困るのであまり使わないかも。

Ubuntu Software で更新できるソフトウェアを全部アップデート

GUI アプリでアップデートする。
22.04 で snap が更新ができないと言われたら、

sudo killall snap-store
sudo snap refresh snap-store

23.10 では問題なかった。

ターミナルでは、

sudo snap refresh

でアップデートできる。
22.04 でインストール後すぐにこれをやったら core22 を消して snapd-desktop-integration のアップデートが始まらなかったうえに結局 snap-store も更新できなかったので、まずは GUI アプリでトライ。

snap はデフォルトで一日4回自動でアップデートするはずなのでほっといても良いかもしれない。問題の snap-store が更新できるのかは未確認。次にいつ行う予定なのかは下記コマンドで確認できる。

snap refresh --time

Lunakey mini Eucalynre-Oyayubishift <自作キーボードの私的キー設定>を使う為の設定

特殊でスマン(笑
Lunaky mini キーボードの Eucalyn配列改と親指シフト対応については QMK にて実装済み。
前提として英語(US)キーボードのキーコードを使っているので、英語(US) キーボードに設定。
F13 で親指シフト、F14 で Eucalyn配列改にしているので、ここでは F13 で日本語mozc、F14 で直接入力になるようにしたい。
Lunakey mini でなくとも、自作キーボードで F13、F14 キーを IME のトリガーにしている方は設定が必要と思われる。

F13キーを押すと設定が起動する対策

dconf-editorをインストールして起動。

sudo apt install dconf-editor
dconf-editor

control-center-static で検索して以下の設定にする。

デフォルト値を使用する→オフ

カスタム値→ ['']

fcitx5-mozcの導入

インストールして切り替え。

sudo apt install fcitx5-mozc
im-config -n fcitx5

再起動。

グローバルオプションの変更。(fcitxの設定)

入力メソッドの切り替え:    空
    :
    :
入力メソッドを有効にする: (F13を押す)
入力メソッドをオフにする: (F14を押す)

なぜか ハングルハングル Hanja と入力されるけどそのまま了承する。

mozc設定でキーマップ設定を keymap.txt としてエクスポート。
テキストエディターで開いて、下記を末尾に追記してインポートする。

Conversion  F14 IMEOff
Composition F14 IMEOff
Precomposition  F14 IMEOff
DirectInput F14 IMEOff
Conversion  F13 IMEOn
Composition F13 IMEOn
Precomposition  F13 IMEOn

追記の際、タブを揃える。