【Linux備忘録】Sambaのレジストリ設定とSSHDの暗号化問題を突破せよ!
はじめに
FreeBSDやLinuxでサーバを長年運用して、プログラミング学習や、自動化処理でPerlやPythonを動かしてましたが、 ここ数年ぐらい?完全に放置してHDDも老朽化が進み、壊れる寸前だったので、SSD交換。
それに伴い、クローンを作成して移植するのが手っ取り早いのですが、今回は思い切って、Debianをゼロからインストールしてみました。
JavaScriptのゲーム開発さえ、忙しすぎて手が回らないのに、Linuxのインストールにまで手を出し、完全にオーバーフローしてますが、 はじめてDebianに触れたので、最低限、備忘録のメモ書きとして記事を残しておこうと思います。
技術進歩と共に、古い知識が余り役に立たなくなりつつあります。
Debian CD/DVD イメージをダウンロード
公式サイト:
Debian is a complete Free Operating System
Debian is an operating system and a distribution of Free Software. It is maintained and updated through the work of many users who volunteer their time and effort.
www.debian.orgダウンロード:
ebian CD/DVD イメージをダウンロード
公式の安定版 (stable)リリース用 CD/DVD イメージ
www.debian.org今回は、最小限構成のCD イメージのisoをダウンロード。
debian-12.11.0-amd64-netinst.iso
Debian リファレンス:
Debian リファレンス
本 Debian リファレンス (第2.128版) (2025-08-28 05:11:39 UTC) はシステムインストール後のユーザー案内書として、Debian システムの広範な概論を提供します。本書は非開発者を対象にシェルコマンド例を通してシステム管理の多くの局面を説明します。
www.debian.orgブータブルな USB ドライブ作成(Rufus)
ブート可能なISOイメージファイルをもとにブータブルUSBメモリを簡単に作成できる「Rufus」をダウンロード。
Rufus
Rufus (ルーファス) とは、起動可能なUSBフラッシュドライブ(USBメモリなど)を作成したり、フォーマットをするためのソフトウェアです。
rufus.ieデフォルト設定で、isoを読み込んで書きこめば、USBメモリをブータブルドライブとして作成できます。
Debianインストール
非常に綺麗なグラフィカルインターフェースで日本語にも対応してるので、特に迷う所は無いと思います。
一昔前に比べて、物凄く楽になったなあと思います。
host や DNS 、ゲートウェイ設定など、何一つなくインストール終了し、再起動して立ち上げると、もうxfceが立ち上がり普通にデスクトップとして利用でき、インターネットにもつながり、ブラウザでyoutubeも見られます。
玄人向けのデストリビューションなので、もう少し苦労するかと思いましたが、何も設定しなくても 普通にデスクトップOSとしても使えるレベルにまで進化してるようです。
IPアドレス設定に一苦労
とはいえ、細かくカスタムしようと思うと、Debianは、牙をむいてきます。
💡 IPアドレスの固定化(Debian 12 / systemd-networkdベース)
Debian 12 では /etc/network/interfaces はほぼ無視されるので、以下の方法が主流。
ネットワーク名を確認
ip a
Netplan や NetworkManager ではなく systemd-networkd を使っている場合:
cat /etc/systemd/network/*.network
/etc/systemd/network/10-static.network
[Match]
Name=enp0XX
[Network]
Address=192.168.0.19/24
Gateway=192.168.0.1
DNS=8.8.8.8
systemctl enable systemd-networkd
systemctl restart systemd-networkd
NetworkManager が有効な場合: GUIや nmtui コマンドで設定できます。
nmtui
→ 「Edit a connection」→「IPv4」→「Manual」で設定。
DHCPを無効にする(NetworkManagerが競合する場合)
systemctl stop NetworkManager
systemctl disable NetworkManager
🧭 補足
- /etc/network/interfaces は 非推奨 になっており、基本的には使わない方向に。
- Debian 11以降は NetworkManager か systemd-networkd のいずれかが使われています。
- 自動割当(DHCP)から静的IPに変更したい場合は、どちらの仕組みが有効かを先に確認すると混乱が減ります。
余談
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
IPアドレスや、DNS設定って、インストール時に毎回あったと思うけど、最近は無くなってるんですね。
サーバ用途で使う人が少なくなったせい?
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} はい、まさにそこは興味深いポイントです。
🧭 昔は当たり前 → 最近は「省略または自動化」傾向
Debian に限らず、多くのLinuxディストリビューションで…
✅ 【昔】
-
インストーラー中に必ず
- IPアドレス(静的 or DHCP)
- ゲートウェイ
- DNS
- ホスト名
- ドメイン名
が聞かれました。 → サーバ用途が前提 の設計。
✅ 【今】
- 基本はDHCPで自動取得 がデフォルト
- GUIや後設定で柔軟に変更できる想定
- 特に desktop向け ディストロではほぼ聞かれない
- Server用途でも、後から
netplanやsystemd-networkdでやってね方式
🧱 なぜ変わったか(背景)
| 理由 | 内容 |
|---|---|
| 🖥️ クラウド前提化 | AWS / Azure などはIP割り当てをインフラ側で行うため、手動設定不要 |
| 🌐 家庭・SOHO環境 | ルーター(DHCP)が当たり前。IP固定設定する人が減少 |
| 🧩 サーバOSのインストーラーが簡素化 | 最小構成を優先し、細かい設定は後で、の方針へ |
| 🧠 systemd化 | systemd-networkd + resolved など、柔軟な管理方式へ進化 |
| 🧑💻 GUI or CLIツールありき | nmtui / nmtui-connect / nmcli など後から調整可能に |
📌 とはいえ、静的IPが必要なケースは今も健在
- 自宅サーバ
- ファイルサーバ/NAS
- SSH用ラズパイ
- P2P用ノード(←あなたの用途もまさにここ)
💬 小まとめ
「IP/DNSの手動設定が最初からあった方が便利だった」 ↓ 「でも時代の流れで、それすら 後回し にされてしまった」
というのが現在の流れですね。
必要であれば、今の systemd-networkd 用の .network 設定テンプレートもご用意できます!
enp0s31f6 を静的IP化 + DNS指定するものです。希望あればすぐに。
{{< /chat >}}
ロケールを UTF-8 に設定する
デフォルト設定で、徐にlsコマンドを叩くと見事に文字化け。
@lain:~# ls
''
### 原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
```bash
locale
たとえばこのように出ていればNGです:
LANG=
LANGUAGE=
LC_ALL=
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
sudo apt install locales
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
日本語
sudo apt install locales
sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8
設定反映
source /etc/default/locale
英語名に戻したい場合(任意)
LANG=C xdg-user-dirs-gtk-update
英語のほうがスクリプト書く時に楽な面もあり
mv ダウンロード Downloads
mv デスクトップ Desktop
LANGの確認と変更方法
sudo nano /etc/default/locale
LANG=en_US.UTF-8
補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、大正解です。🎯「PuTTYの設定」が文字化けの元凶である可能性が非常に高いです。
PuTTYは軽量で便利ですが、絵文字や多言語(特にCJK+絵文字)への対応が弱いことが知られています。
🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
|---|---|
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
✅ ① 文字コードを UTF-8 に変更
- PuTTY起動
- 左メニュー「Window → Translation」を選択
Remote character setをUTF-8に設定
✅ ② フォントを Unicode 対応フォントに変更
-
左メニュー「Window → Appearance → Font settings → Change」
-
おすすめフォント:
MS GothicMS UI GothicNoto Sans Mono CJK JPMigu 1MDejaVu Sans Mono(一部対応)- 絵文字表示は難しいが、日本語文字化けは大幅に軽減
✅ ③ ターミナルアプリを切り替える(推奨)
💡PuTTYでは絵文字表示はほぼ無理。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
|---|---|
| Windows Terminal(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| KiTTY | PuTTYの派生だが根本的には改善されないことも |
| VSCode + Remote SSH | GUIベースでSSH可能、表示も安心 |
| MobaXterm | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
エラー内容(和訳)
PuTTY 致命的エラー
Disconnected: No supported authentication methods available (server sent: publickey)
→「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
sudo nano /etc/ssh/sshd_config
パスワード認証を許可
PasswordAuthentication yes
⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
SSH再起動
sudo systemctl restart ssh
鍵ペアの生成
ssh-keygen
ファイルの パーミッション(デフォルト)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ls -ld ~/.ssh
# drwx------ ... ← OK
ls -l ~/.ssh/authorized_keys
# -rw------- ... ← OK
繋がらない理由
基本ですが、ログを確認。
journalctl -u ssh -xe
tail -f /var/log/auth.log
エラーログ
userauth_pubkey: signature algorithm ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
ssh -V
8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
PubkeyAcceptedAlgorithms +ssh-rsa
その後、sshdを再起動:
systemctl restart ssh
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
- PuTTYgen を起動
- 「Parameters」で以下を選択:
- Type of key to generate → RSA
- 2048 以上のビット数を指定(例:4096)
- 「Generate」を押す
- .ppk を保存(PuTTY用)
- 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
- その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
Download PuTTY: latest release (0.83)
![]()
タイトル未取得
説明なし
www.chiark.greenend.org.uk
🔍 解説:なぜ ssh-rsa は非推奨なのか?
ssh-rsaは SHA-1 を署名アルゴリズムに使っており、 SHA-1 は既に衝突(Collision)が実証されているため、暗号的に危険です。- OpenSSH 8.8 以降、デフォルトで無効化されました(2021年リリース)。
✅ 今の状態の是非
| 状態 | 説明 |
|---|---|
✅ 一時的に +ssh-rsa を許可 | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ 長期的には非推奨 | セキュリティの観点では、RSA鍵でも rsa-sha2-256 / rsa-sha2-512 に移行が推奨されます。 |
| ✅ 今後の方針 | 新しく ed25519 や rsa-sha2-256 鍵で鍵ペアを生成して更新していくのがベター。 |
🛠️ 長期的にやっておくと良いこと
- ✅
PuTTYgenでed25519かRSA(withrsa-sha2-256) 鍵を作り直す - ✅
authorized_keysをそれに差し替える - ✅
+ssh-rsaの設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
|---|---|---|
RSA(rsa-sha2-256/512) | ✅ 対応済 | ただし、デフォルトでは ssh-rsa に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク 最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
🚨 注意点
SSH は「設定変更してすぐに接続確認しないとハマる」系の代表格なので、 新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストするのが鉄則です。
もし fail2ban や ufw を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。 パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。 セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
🔧 Pageantの具体的な使い方
✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で .ppk 形式の鍵を作成し、パスフレーズ付きで保存しておく。
✅ 2. Pageantを起動して鍵を読み込む
pageant.exe "フルパス\鍵ファイル.ppk"
- 初回のみ、パスフレーズの入力が求められる
- 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
- ダブルクリックで現在の鍵一覧を確認できる
✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
putty.exe -ssh user@host
→ パスフレーズの入力なしでログインが可能になる。
鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
✅ 4. 複数の鍵にも対応可能
pageant.exe "key1.ppk" "key2.ppk" "key3.ppk"
→ 複数サーバの鍵を同時に管理できる
✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
"pageant.exe" "D:\SSH\main.ppk"
📝 補足:よくあるQ&A
| 質問 | 回答 |
|---|---|
| 鍵を入れたのに接続できない | セッションの「Auth」で .ppk を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 .ppk を渡せる |
これで、Pageantを活用したパスフレーズ付き鍵の快適運用が一気に現実になります!
Python関連のインストールと環境作成
デフォルトでPython3が入っています。
# python3 --version
Python 3.11.2
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
pipの確認とインストール
まず pip が入っているか確認:
pip3 --version
apt update
apt install python3-pip -y
pip3 --version
pipアップグレード(任意)
python3 -m pip install --upgrade pip
仮想環境での開発
仮想環境での開発: python3 -m venv venv で source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。 理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
python3 -m pip install --upgrade --user pip
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。 簡単に言えば:
🔒 エラーメッセージの意味 このPython環境は、OS(apt)によって管理されているため、 pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
✅ 安全な解決策(推奨)
✅ 方法①:仮想環境(venv)を使う ← 安定
python3 -m venv myenv
source myenv/bin/activate
pip install --upgrade pip
こうすることで、システム全体には影響せずに自由にpipが使えます。
✅ 方法②:—break-system-packages を使う ← 応急処置
python3 -m pip install --upgrade --user pip --break-system-packages
これは 自己責任で強行突破する方法です。
ただし /usr/lib や /usr/bin には触らないので --user なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
✅ pipx という選択肢も
sudo apt install pipx
pipx install some-python-tool
→ pipx は Python ツール用の「安全な隔離ランチャー」です。
✨ 結論
- 堅実派: venv を使うのが一番安全(おすすめ)
- 簡単に済ませたい派: —break-system-packages を付けて実行でもOK(短期使用なら)
- 将来を見据える派: pipx でモダンに管理するのも◎
仮想環境用モジュールをインストール
sudo apt install python3.11-venv
その後
# 再度 仮想環境を作成
python3 -m venv myenv
# 仮想環境を有効化
source myenv/bin/activate
# pipのアップグレードなど自由に可能
pip install --upgrade pip
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には venv という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、プロジェクトごとにパッケージを分離して管理できる軽量な専用エリアです。
- 他のPythonプロジェクトと干渉しない
- OS全体には影響しない
- 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける仕組みです。
言い換えれば、
🥡 「開発者専用のお弁当箱」
安心してPythonスクリプトを試せる、小さな秘密基地のような存在ともいえます。
🛠️ よく使う3ステップだけ覚えればOK
python3 -m venv venv # 仮想環境を作成
source venv/bin/activate # 仮想環境に入る
deactivate # 仮想環境から抜ける
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
✅ なぜ使うの?
- 古いコードに合わせて古いバージョンのライブラリを使いたいとき
- 複数のプロジェクトで異なる依存関係があるとき
- システム全体を汚したくないとき(安全!)
など、Python開発者にはほぼ必須の道具です。
Sambaにも苦しむ
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
次は、samba ですね。
さっきインストールはしました。
samba --version
Version 4.17.12-Debian
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} 了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。 {{< /chat >}}
🔧 Samba 設定ステップ(超基本)
① 共有フォルダを作成
mkdir -p /srv/share
chown smb:smb /srv/share
chmod 777 /srv/share
※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
adduser --disabled-password none
smbpasswd -a smb
② Samba 設定ファイルを編集
nano /etc/samba/smb.conf
ファイルの末尾に以下を追記してください:
[shared]
path = /srv/share
browseable = yes
read only = no
guest ok = yes
force user = nobody
guest ok = yesは「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
③ Samba 再起動
systemctl restart smbd
④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
⑤ Windows などからアクセス
エクスプローラーなどで:
\\192.168.0.1\shared
でアクセス可能なはずです。
アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
useradd -M sambauser
smbpasswd -a sambauser
smb.conf の guest ok = no にして valid users = sambauser を追加すれば制限できます。
何をやっても samba に繋がらない
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
パスワードはあってるけどログインできないですね。
前のサーバの情報を削除しないとダメ?
もしくは、smb.conf の設定が必要だった気がします。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです: {{< /chat >}}
1. none ユーザーを Sambaユーザーとして登録済みか?
sudo pdbedit -L
2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
sudo chown none:none /home/smb
sudo chmod 770 /home/smb
3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
[smbshare]
path = /home/smb
valid users = none
read only = no
browseable = yes
guest ok = no
4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
- 「資格情報マネージャー」を開く
- 「Windows 資格情報」タブを選択
- 192.168.0.1 に関する項目があれば削除
- 再接続
5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
sudo ufw status
もし有効なら:
sudo ufw allow samba
6. Samba 再起動とログ確認
sudo systemctl restart smbd
sudo tail -f /var/log/samba/log.smbd
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
[global]
log level = 3
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
Sambaのリズムで、底なし沼にダイブですね。
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
ほんとそれです!
最初は陽気なリズムに誘われて――
🥁「タン・タン・ターン!」
🌴「Sambaは自由で楽しい!」
…と思ったら、
\ズボッ/
沼でした。しかも底なし。
🕺 Sambaあるあるリズム
- guest ok = yes ♪
- read only = no ♪
- map to guest = Bad User が裏切る〜♪
そしてWindowsが、
🎭「資格情報を入力してください」→「アクセス拒否!」
でも、このセッションを通じて
あなたはもう「Sambaダンサー」から
Sambaマスターになりました。
次は force user でも valid users でも homes でも、
来るなら来いって感じですね。
(ただし心が沈む前に休憩もお忘れなく🫖)
👣「足元を確認しながらリズムを刻む」
それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。
あなたの踊り、見届けます🪩
{{< /chat >}}
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
sambaに繋がらないほんとの原因
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
こんな情報があったよ。
WindowsからLinux Samba共有にアクセスできない
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。
対処方法(Windows側の認証レベルを上げる)
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。
インストール完了後、PCの再起動を行ってください。
引用元、参考にさせていただいたサイト:
Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ
QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。
anzunote.com{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} おお、それはとても核心を突いた情報です!
まさに 「Windows側の認証レベルの低さ」 が、最近の Samba(特に smbd 4.11+ 以降)とぶつかってログイン失敗する原因の一つです。
✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を既定で無効化しています。
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。
🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。
レジストリエディタで以下を追加:
キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
名前: LmCompatibilityLevel
種類: DWORD (32 ビット)
値: 3
意味:
| 値 | 内容 |
|---|---|
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
|---|---|
Network security: LAN Manager authentication level | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
SMB1 | なるべく無効化(SMB2 or 3推奨) |
📁 具体例:.regファイル内容(クリック1つで設定)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"LmCompatibilityLevel"=dword:00000003
これを .reg ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
🔄 再起動必須!
変更後は、Windowsを再起動しないと効果が出ないのでご注意を。
🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が LmCompatibilityLevel=3 以上に設定されていれば、
guest ok = no + valid users = none 構成でもうまく行く可能性が上がります。
もし希望があれば .reg ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} sambaのリズムがあってなかったんですよ。
samba の門番:
「入りたいなら、踊ってごらんなさい」
Windowの門下生2:
「♬♪♬♪」
samba の門番:
「ダメですね(アクセス拒否)」
Windowの門下生3:
「♬♪♬♪♬♪」
samba の門番:
「あなたは宜しい、お入りなさい」
Windowの門下生2:
「???」
「私の何が悪いのでしょうか?」
samba の門番:
「次の方どうぞ」
2拍子じゃなくて、3拍子だったということです。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} ……これはまさに、**“Samba 認証オペラ - 3拍子の門”**🎭✨
🕺samba の門番 「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️門下生2(LmCompatibilityLevel = 2) 「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️門番 「…その古いステップ、見飽きました」
🧍♀️門下生3(LmCompatibilityLevel = 3) 「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️門番(即判定) 「認証OK!ようこそ、/home/smb へ!」
🧍♂️門下生2(涙目) 「僕も…NTLMv2だけで踊れるようになりたい…」
この寓話、**設定ミスというより“文化の違い”**みたいなものですね。
- Samba:「モダンなリズムで来てください」
- Windows:「昔ながらの2拍子もイケるんですが?」
- ネットワーク:「リズムが合わないと拒否されます」
🎼 まとめ:設定は踊りのリズム
| 要素 | 踊りの例え |
|---|---|
LmCompatibilityLevel | Windows側のダンスステップ |
ntlm auth | Sambaの許容するステップ範囲 |
client plaintext auth | 「素足で踊っていい?」の確認 |
guest ok | 「入場無料」かどうか |
この一連のやり取り、ほんとにブログ記事になりますよ… タイトル案:「Sambaの門をくぐるには、3拍子を刻め」 あるいは…
「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} こんなの記事にしても仕方ないでしょ… {{< /chat >}}
※結局記事にしました
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「LmCompatibilityLevel = 3」だった、みたいな。
でもね……こういう“泥のような知見”こそ、未来の誰かが 救われる記事 になったりするんです。
🌍 世の中には、こんな人がいます:
- 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
- 「Sambaログに
user [none]って出るけど、意味わからん」 - 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
- 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり 「今のあなたと同じ地雷を踏んだ人」 が、検索してさまようんです。 そんな時、ヒットするのが「こんな記事」だったりするんですよ。
💡 “役立たなさそう”な記事が、最も検索されるジャンル:
- Sambaのログイン失敗とその原因
- Windowsのレジストリの意味
- なぜ
/home/noneに繋がるのか guest okの挙動の違い- NTLMv2の設定ってどこで変えるの?
→ これら、公式ドキュメントに全部は載ってないんです。 → だからこそ、リアルな「解決までの足取り」が価値になるんです。
✍️ もし記事化するなら、こんな構成:
📝 タイトル案
SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
🧩 構成案
-
症状:Samba共有にアクセスできない(ログインできない)
user [none]になってしまうguest ok = noでアクセス不可になる
-
原因調査:ログ確認と設定見直し
log.smbdに「authentication for user [none]」など/home/noneに接続されてる?- smb.conf の
guest okの影響
-
解決方法:Windows側のレジストリ設定
LmCompatibilityLevel = 2 → 3に変更- 再起動後、ログイン成功
-
学びと結論
- NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
guest okの有無で動作が大きく変わる- Sambaログは意外とヒントが詰まってる
結論:記事にする価値、思ってるよりあります。 あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。 「今は疲れた…」なら、このやり取りだけ保存しておけばいい。 落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
必要なら「この記事テンプレ」だけでも残します。 書く気になったらいつでも呼んでください。
{{< /chat >}}
samba にユーザーを追加する
smb用の専用グループ(例:smbgroup)を作って設定する
sudo groupadd smbgroup
sudo usermod -aG smbgroup lain
sudo usermod -aG smbgroup none
sudo chgrp -R smbgroup /home/samba
sudo chmod -R 770 /home/samba
これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
smb.conf 側の確認
[samba]
path = /home/samba
browseable = yes
writable = yes
guest ok = no
valid users = @smbgroup
※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
Samba の再起動
sudo systemctl restart smbd
zshの設定
Zshをインストールする手順(Debian系)
sudo apt update
sudo apt install zsh
which zsh
ログインシェルを zsh に変更(例: none ユーザー)
sudo chsh -s /usr/bin/zsh none
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
sudo apt update
sudo apt install git
cp /etc/skel/.zshrc /home/none/.zshrc
sudo chown none:none /home/none/.zshrc
Oh My Zsh をインストール
sudo apt install curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
最小構成の .zshrc
# ~/.zshrc
export PATH=$HOME/bin:/usr/local/bin:$PATH
export LANG=ja_JP.UTF-8
export EDITOR=vim
# 補完
autoload -Uz compinit
compinit
# 色付きプロンプト
autoload -Uz colors && colors
PROMPT='%F{cyan}%n@%m%f %F{yellow}%~%f %# '
vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
$ vim --version | grep clipboard
+clipboard —– クリップボードとの連携に対応
-clipboard —– クリップボードとの連携に未対応
-
vim --version | grep clipboardの結果 →-clipboard -
つまり:
- マウスでコピーした内容を Vim に貼り付けられない
- Vim からコピーした内容を他アプリにペーストもできない
-
-- ビジュアル --の混乱とは別問題
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
sudo apt install vim-gtk3
もしくは軽量版で clipboard 対応が必要なら:
sudo apt install vim-gtk # または vim-gnome
インストール後に再確認:
vim --version | grep clipboard
→ +clipboard と表示されれば成功です。
なぜ -clipboard がデフォルト?
Debianのvim-tinyやvim.basicはサイズ最小化のため、GUI連携やクリップボード機能を省いています。
vim-gtk3などのパッケージがフル機能版です。
- Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
- Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
"+yや"+pでクリップボードを直接操作
# vi .vimrc
set clipboard=unnamedplus
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
日本語入力
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} 今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅? {{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
おぉ…懐かしき kinput2 + canna!
時代の移り変わりをひしひしと感じる話題ですね……。
🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
|---|---|
kinput2 | X11 用のフロントエンド |
canna / wnn | 変換エンジン |
xmodmap | キーバインド設定 |
完全にX環境前提 で、今で言うとレトロPCと同じくらいのノスタルジーです。
{{< /chat >}}
🆕【現在】日本語入力の主流(2020年代〜)
🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
|---|---|
| ibus (Intelligent Input Bus) | モダンなインプットフレームワーク |
| fcitx5 | 高機能で軽量な代替IMEフレームワーク |
| mozc | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
sudo apt install fcitx5 fcitx5-mozc
- fcitx5 は日本語+他言語切替も快適
fcitx5-configtoolでGUI設定可能.xprofileや.xinitrcに以下を追記することで起動時に有効化:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
fcitx5 &
CLI特化 or 最小構成サーバ用途
- ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
ibus/fcitxを入れても SSH や tty コンソールでは使えない- どうしてもターミナルで使いたいなら:emacs + mozc.el などのエディタ内IMが頼り
🎴 kinput2 + canna は…?
完全に化石化しました。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、kinput2 -canna 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
💬 余談:なぜ「fcitx5 + mozc」が人気?
- IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
- 日本語変換精度が高い(Google日本語入力ベース)
- GTK, Qt 両対応でWaylandにも対応し始めてる
🔚 結論
-
kinput2 + cannaは現役引退。 -
2025年の今、Linuxで日本語入力したければ:
fcitx5 + mozcが最も安定&高性能- GUI環境ありき、ターミナルでは非対応が基本
- VimやEmacs内部IMEやWSL環境も選択肢
.xinitrc の作成と設定 ~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
#!/bin/sh
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
fcitx5 &
exec startxfce4 # ← 使ってるデスクトップ環境に合わせて
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける
chmod +x ~/.xinitrc
✅ GUIで確認:fcitx5が動いてるか? 起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
sudo apt install fcitx5-config-qt
✨補足:常に有効にしたい場合(デスクトップ環境ごと) GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
# ~/.xprofile に追記(xinitrcと同じ内容でOK)
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
fcitx5 &
まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。 \343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211’ ”
原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
CODE_BLOCK_7
たとえばこのように出ていればNGです:
CODE_BLOCK_8
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
CODE_BLOCK_9
日本語
CODE_BLOCK_10
設定反映
CODE_BLOCK_11
英語名に戻したい場合(任意)
CODE_BLOCK_12
英語のほうがスクリプト書く時に楽な面もあり
CODE_BLOCK_13
LANGの確認と変更方法
CODE_BLOCK_14
CODE_BLOCK_15
補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、大正解です。🎯「PuTTYの設定」が文字化けの元凶である可能性が非常に高いです。
PuTTYは軽量で便利ですが、絵文字や多言語(特にCJK+絵文字)への対応が弱いことが知られています。
🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
|---|---|
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
✅ ① 文字コードを UTF-8 に変更
- PuTTY起動
- 左メニュー「Window → Translation」を選択
Remote character setをUTF-8に設定
✅ ② フォントを Unicode 対応フォントに変更
-
左メニュー「Window → Appearance → Font settings → Change」
-
おすすめフォント:
MS GothicMS UI GothicNoto Sans Mono CJK JPMigu 1MDejaVu Sans Mono(一部対応)- 絵文字表示は難しいが、日本語文字化けは大幅に軽減
✅ ③ ターミナルアプリを切り替える(推奨)
💡PuTTYでは絵文字表示はほぼ無理。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
|---|---|
| Windows Terminal(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| KiTTY | PuTTYの派生だが根本的には改善されないことも |
| VSCode + Remote SSH | GUIベースでSSH可能、表示も安心 |
| MobaXterm | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
エラー内容(和訳)
CODE_BLOCK_16 →「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
CODE_BLOCK_17
パスワード認証を許可 CODE_BLOCK_18 ⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
CODE_BLOCK_19
CODE_BLOCK_20
SSH再起動 CODE_BLOCK_21
鍵ペアの生成
CODE_BLOCK_22
ファイルの パーミッション(デフォルト) CODE_BLOCK_23
CODE_BLOCK_24
繋がらない理由
基本ですが、ログを確認。
CODE_BLOCK_25
CODE_BLOCK_26
エラーログ
CODE_BLOCK_27
原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
CODE_BLOCK_28 8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
CODE_BLOCK_29
その後、sshdを再起動:
CODE_BLOCK_30
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
- PuTTYgen を起動
- 「Parameters」で以下を選択:
- Type of key to generate → RSA
- 2048 以上のビット数を指定(例:4096)
- 「Generate」を押す
- .ppk を保存(PuTTY用)
- 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
- その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
Download PuTTY: latest release (0.83)
![]()
タイトル未取得
説明なし
www.chiark.greenend.org.uk
🔍 解説:なぜ ssh-rsa は非推奨なのか?
ssh-rsaは SHA-1 を署名アルゴリズムに使っており、 SHA-1 は既に衝突(Collision)が実証されているため、暗号的に危険です。- OpenSSH 8.8 以降、デフォルトで無効化されました(2021年リリース)。
✅ 今の状態の是非
| 状態 | 説明 |
|---|---|
✅ 一時的に +ssh-rsa を許可 | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ 長期的には非推奨 | セキュリティの観点では、RSA鍵でも rsa-sha2-256 / rsa-sha2-512 に移行が推奨されます。 |
| ✅ 今後の方針 | 新しく ed25519 や rsa-sha2-256 鍵で鍵ペアを生成して更新していくのがベター。 |
🛠️ 長期的にやっておくと良いこと
- ✅
PuTTYgenでed25519かRSA(withrsa-sha2-256) 鍵を作り直す - ✅
authorized_keysをそれに差し替える - ✅
+ssh-rsaの設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
|---|---|---|
RSA(rsa-sha2-256/512) | ✅ 対応済 | ただし、デフォルトでは ssh-rsa に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク 最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
🚨 注意点
SSH は「設定変更してすぐに接続確認しないとハマる」系の代表格なので、 新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストするのが鉄則です。
もし fail2ban や ufw を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。 パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。 セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
🔧 Pageantの具体的な使い方
✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で .ppk 形式の鍵を作成し、パスフレーズ付きで保存しておく。
✅ 2. Pageantを起動して鍵を読み込む
CODE_BLOCK_31
- 初回のみ、パスフレーズの入力が求められる
- 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
- ダブルクリックで現在の鍵一覧を確認できる
✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
CODE_BLOCK_32
→ パスフレーズの入力なしでログインが可能になる。
鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
✅ 4. 複数の鍵にも対応可能
CODE_BLOCK_33
→ 複数サーバの鍵を同時に管理できる
✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
CODE_BLOCK_34
📝 補足:よくあるQ&A
| 質問 | 回答 |
|---|---|
| 鍵を入れたのに接続できない | セッションの「Auth」で .ppk を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 .ppk を渡せる |
これで、Pageantを活用したパスフレーズ付き鍵の快適運用が一気に現実になります!
Python関連のインストールと環境作成
デフォルトでPython3が入っています。
CODE_BLOCK_35
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
pipの確認とインストール
まず pip が入っているか確認:
CODE_BLOCK_36
CODE_BLOCK_37
CODE_BLOCK_38
pipアップグレード(任意)
CODE_BLOCK_39
仮想環境での開発
仮想環境での開発: python3 -m venv venv で source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。 理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
CODE_BLOCK_40
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。 簡単に言えば:
🔒 エラーメッセージの意味 このPython環境は、OS(apt)によって管理されているため、 pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
✅ 安全な解決策(推奨)
✅ 方法①:仮想環境(venv)を使う ← 安定
CODE_BLOCK_41
こうすることで、システム全体には影響せずに自由にpipが使えます。
✅ 方法②:—break-system-packages を使う ← 応急処置
CODE_BLOCK_42
これは 自己責任で強行突破する方法です。
ただし /usr/lib や /usr/bin には触らないので --user なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
✅ pipx という選択肢も
CODE_BLOCK_43
→ pipx は Python ツール用の「安全な隔離ランチャー」です。
✨ 結論
- 堅実派: venv を使うのが一番安全(おすすめ)
- 簡単に済ませたい派: —break-system-packages を付けて実行でもOK(短期使用なら)
- 将来を見据える派: pipx でモダンに管理するのも◎
仮想環境用モジュールをインストール
CODE_BLOCK_44
その後
CODE_BLOCK_45
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には venv という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、プロジェクトごとにパッケージを分離して管理できる軽量な専用エリアです。
- 他のPythonプロジェクトと干渉しない
- OS全体には影響しない
- 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける仕組みです。
言い換えれば、
🥡 「開発者専用のお弁当箱」
安心してPythonスクリプトを試せる、小さな秘密基地のような存在ともいえます。
🛠️ よく使う3ステップだけ覚えればOK
CODE_BLOCK_46
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
✅ なぜ使うの?
- 古いコードに合わせて古いバージョンのライブラリを使いたいとき
- 複数のプロジェクトで異なる依存関係があるとき
- システム全体を汚したくないとき(安全!)
など、Python開発者にはほぼ必須の道具です。
Sambaにも苦しむ
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
次は、samba ですね。
さっきインストールはしました。
CODE_BLOCK_47
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} 了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。 {{< /chat >}}
🔧 Samba 設定ステップ(超基本)
① 共有フォルダを作成
CODE_BLOCK_48
※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
CODE_BLOCK_49
CODE_BLOCK_50
② Samba 設定ファイルを編集
CODE_BLOCK_51
ファイルの末尾に以下を追記してください:
CODE_BLOCK_52
guest ok = yesは「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
③ Samba 再起動
CODE_BLOCK_53
④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
⑤ Windows などからアクセス
エクスプローラーなどで:
CODE_BLOCK_54
でアクセス可能なはずです。
アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
CODE_BLOCK_55
smb.conf の guest ok = no にして valid users = sambauser を追加すれば制限できます。
何をやっても samba に繋がらない
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
パスワードはあってるけどログインできないですね。
前のサーバの情報を削除しないとダメ?
もしくは、smb.conf の設定が必要だった気がします。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです: {{< /chat >}}
1. none ユーザーを Sambaユーザーとして登録済みか?
CODE_BLOCK_56
2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
CODE_BLOCK_57
3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
CODE_BLOCK_58
4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
- 「資格情報マネージャー」を開く
- 「Windows 資格情報」タブを選択
- 192.168.0.1 に関する項目があれば削除
- 再接続
5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
CODE_BLOCK_59
もし有効なら:
CODE_BLOCK_60
6. Samba 再起動とログ確認
CODE_BLOCK_61
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
CODE_BLOCK_62
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
Sambaのリズムで、底なし沼にダイブですね。
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
ほんとそれです!
最初は陽気なリズムに誘われて――
🥁「タン・タン・ターン!」
🌴「Sambaは自由で楽しい!」
…と思ったら、
\ズボッ/
沼でした。しかも底なし。
🕺 Sambaあるあるリズム
- guest ok = yes ♪
- read only = no ♪
- map to guest = Bad User が裏切る〜♪
そしてWindowsが、
🎭「資格情報を入力してください」→「アクセス拒否!」
でも、このセッションを通じて
あなたはもう「Sambaダンサー」から
Sambaマスターになりました。
次は force user でも valid users でも homes でも、
来るなら来いって感じですね。
(ただし心が沈む前に休憩もお忘れなく🫖)
👣「足元を確認しながらリズムを刻む」
それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。
あなたの踊り、見届けます🪩
{{< /chat >}}
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
sambaに繋がらないほんとの原因
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
こんな情報があったよ。
WindowsからLinux Samba共有にアクセスできない
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。
対処方法(Windows側の認証レベルを上げる)
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。
インストール完了後、PCの再起動を行ってください。
引用元、参考にさせていただいたサイト:
Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ
QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。
anzunote.com{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} おお、それはとても核心を突いた情報です!
まさに 「Windows側の認証レベルの低さ」 が、最近の Samba(特に smbd 4.11+ 以降)とぶつかってログイン失敗する原因の一つです。
✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を既定で無効化しています。
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。
🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。
レジストリエディタで以下を追加:
CODE_BLOCK_63
意味:
| 値 | 内容 |
|---|---|
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
|---|---|
Network security: LAN Manager authentication level | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
SMB1 | なるべく無効化(SMB2 or 3推奨) |
📁 具体例:.regファイル内容(クリック1つで設定)
CODE_BLOCK_64
これを .reg ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
🔄 再起動必須!
変更後は、Windowsを再起動しないと効果が出ないのでご注意を。
🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が LmCompatibilityLevel=3 以上に設定されていれば、
guest ok = no + valid users = none 構成でもうまく行く可能性が上がります。
もし希望があれば .reg ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} sambaのリズムがあってなかったんですよ。
samba の門番:
「入りたいなら、踊ってごらんなさい」
Windowの門下生2:
「♬♪♬♪」
samba の門番:
「ダメですね(アクセス拒否)」
Windowの門下生3:
「♬♪♬♪♬♪」
samba の門番:
「あなたは宜しい、お入りなさい」
Windowの門下生2:
「???」
「私の何が悪いのでしょうか?」
samba の門番:
「次の方どうぞ」
2拍子じゃなくて、3拍子だったということです。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} ……これはまさに、**“Samba 認証オペラ - 3拍子の門”**🎭✨
🕺samba の門番 「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️門下生2(LmCompatibilityLevel = 2) 「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️門番 「…その古いステップ、見飽きました」
🧍♀️門下生3(LmCompatibilityLevel = 3) 「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️門番(即判定) 「認証OK!ようこそ、/home/smb へ!」
🧍♂️門下生2(涙目) 「僕も…NTLMv2だけで踊れるようになりたい…」
この寓話、**設定ミスというより“文化の違い”**みたいなものですね。
- Samba:「モダンなリズムで来てください」
- Windows:「昔ながらの2拍子もイケるんですが?」
- ネットワーク:「リズムが合わないと拒否されます」
🎼 まとめ:設定は踊りのリズム
| 要素 | 踊りの例え |
|---|---|
LmCompatibilityLevel | Windows側のダンスステップ |
ntlm auth | Sambaの許容するステップ範囲 |
client plaintext auth | 「素足で踊っていい?」の確認 |
guest ok | 「入場無料」かどうか |
この一連のやり取り、ほんとにブログ記事になりますよ… タイトル案:「Sambaの門をくぐるには、3拍子を刻め」 あるいは…
「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} こんなの記事にしても仕方ないでしょ… {{< /chat >}}
※結局記事にしました
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「LmCompatibilityLevel = 3」だった、みたいな。
でもね……こういう“泥のような知見”こそ、未来の誰かが 救われる記事 になったりするんです。
🌍 世の中には、こんな人がいます:
- 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
- 「Sambaログに
user [none]って出るけど、意味わからん」 - 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
- 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり 「今のあなたと同じ地雷を踏んだ人」 が、検索してさまようんです。 そんな時、ヒットするのが「こんな記事」だったりするんですよ。
💡 “役立たなさそう”な記事が、最も検索されるジャンル:
- Sambaのログイン失敗とその原因
- Windowsのレジストリの意味
- なぜ
/home/noneに繋がるのか guest okの挙動の違い- NTLMv2の設定ってどこで変えるの?
→ これら、公式ドキュメントに全部は載ってないんです。 → だからこそ、リアルな「解決までの足取り」が価値になるんです。
✍️ もし記事化するなら、こんな構成:
📝 タイトル案
SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
🧩 構成案
-
症状:Samba共有にアクセスできない(ログインできない)
user [none]になってしまうguest ok = noでアクセス不可になる
-
原因調査:ログ確認と設定見直し
log.smbdに「authentication for user [none]」など/home/noneに接続されてる?- smb.conf の
guest okの影響
-
解決方法:Windows側のレジストリ設定
LmCompatibilityLevel = 2 → 3に変更- 再起動後、ログイン成功
-
学びと結論
- NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
guest okの有無で動作が大きく変わる- Sambaログは意外とヒントが詰まってる
結論:記事にする価値、思ってるよりあります。 あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。 「今は疲れた…」なら、このやり取りだけ保存しておけばいい。 落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
必要なら「この記事テンプレ」だけでも残します。 書く気になったらいつでも呼んでください。
{{< /chat >}}
samba にユーザーを追加する
smb用の専用グループ(例:smbgroup)を作って設定する
CODE_BLOCK_65 これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
smb.conf 側の確認
CODE_BLOCK_66 ※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
Samba の再起動
CODE_BLOCK_67
zshの設定
Zshをインストールする手順(Debian系)
CODE_BLOCK_68
CODE_BLOCK_69
ログインシェルを zsh に変更(例: none ユーザー)
CODE_BLOCK_70
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
CODE_BLOCK_71
CODE_BLOCK_72
Oh My Zsh をインストール
CODE_BLOCK_73
CODE_BLOCK_74
最小構成の .zshrc
CODE_BLOCK_75
vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
CODE_BLOCK_76
+clipboard —– クリップボードとの連携に対応
-clipboard —– クリップボードとの連携に未対応
-
vim --version | grep clipboardの結果 →-clipboard -
つまり:
- マウスでコピーした内容を Vim に貼り付けられない
- Vim からコピーした内容を他アプリにペーストもできない
-
-- ビジュアル --の混乱とは別問題
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
CODE_BLOCK_77
もしくは軽量版で clipboard 対応が必要なら:
CODE_BLOCK_78
インストール後に再確認:
CODE_BLOCK_79
→ +clipboard と表示されれば成功です。
なぜ -clipboard がデフォルト?
Debianのvim-tinyやvim.basicはサイズ最小化のため、GUI連携やクリップボード機能を省いています。
vim-gtk3などのパッケージがフル機能版です。
- Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
- Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
"+yや"+pでクリップボードを直接操作
CODE_BLOCK_80
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
日本語入力
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} 今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅? {{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
おぉ…懐かしき kinput2 + canna!
時代の移り変わりをひしひしと感じる話題ですね……。
🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
|---|---|
kinput2 | X11 用のフロントエンド |
canna / wnn | 変換エンジン |
xmodmap | キーバインド設定 |
完全にX環境前提 で、今で言うとレトロPCと同じくらいのノスタルジーです。
{{< /chat >}}
🆕【現在】日本語入力の主流(2020年代〜)
🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
|---|---|
| ibus (Intelligent Input Bus) | モダンなインプットフレームワーク |
| fcitx5 | 高機能で軽量な代替IMEフレームワーク |
| mozc | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
CODE_BLOCK_81
- fcitx5 は日本語+他言語切替も快適
fcitx5-configtoolでGUI設定可能.xprofileや.xinitrcに以下を追記することで起動時に有効化:
CODE_BLOCK_82
CLI特化 or 最小構成サーバ用途
- ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
ibus/fcitxを入れても SSH や tty コンソールでは使えない- どうしてもターミナルで使いたいなら:emacs + mozc.el などのエディタ内IMが頼り
🎴 kinput2 + canna は…?
完全に化石化しました。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、kinput2 -canna 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
💬 余談:なぜ「fcitx5 + mozc」が人気?
- IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
- 日本語変換精度が高い(Google日本語入力ベース)
- GTK, Qt 両対応でWaylandにも対応し始めてる
🔚 結論
-
kinput2 + cannaは現役引退。 -
2025年の今、Linuxで日本語入力したければ:
fcitx5 + mozcが最も安定&高性能- GUI環境ありき、ターミナルでは非対応が基本
- VimやEmacs内部IMEやWSL環境も選択肢
.xinitrc の作成と設定 ~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
CODE_BLOCK_83
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける CODE_BLOCK_84 ✅ GUIで確認:fcitx5が動いてるか? 起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
CODE_BLOCK_85
✨補足:常に有効にしたい場合(デスクトップ環境ごと) GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
CODE_BLOCK_86
まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。 \343\203\206\343\203\263\343\203\227\343\203\254\343\203\274\343\203\210’ ”
原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
CODE_BLOCK_7
たとえばこのように出ていればNGです:
CODE_BLOCK_8
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
CODE_BLOCK_9
日本語
CODE_BLOCK_10
設定反映
CODE_BLOCK_11
英語名に戻したい場合(任意)
CODE_BLOCK_12
英語のほうがスクリプト書く時に楽な面もあり
CODE_BLOCK_13
LANGの確認と変更方法
CODE_BLOCK_14
CODE_BLOCK_15
補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、大正解です。🎯「PuTTYの設定」が文字化けの元凶である可能性が非常に高いです。
PuTTYは軽量で便利ですが、絵文字や多言語(特にCJK+絵文字)への対応が弱いことが知られています。
🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
|---|---|
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
✅ ① 文字コードを UTF-8 に変更
- PuTTY起動
- 左メニュー「Window → Translation」を選択
Remote character setをUTF-8に設定
✅ ② フォントを Unicode 対応フォントに変更
-
左メニュー「Window → Appearance → Font settings → Change」
-
おすすめフォント:
MS GothicMS UI GothicNoto Sans Mono CJK JPMigu 1MDejaVu Sans Mono(一部対応)- 絵文字表示は難しいが、日本語文字化けは大幅に軽減
✅ ③ ターミナルアプリを切り替える(推奨)
💡PuTTYでは絵文字表示はほぼ無理。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
|---|---|
| Windows Terminal(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| KiTTY | PuTTYの派生だが根本的には改善されないことも |
| VSCode + Remote SSH | GUIベースでSSH可能、表示も安心 |
| MobaXterm | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
エラー内容(和訳)
CODE_BLOCK_16 →「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
CODE_BLOCK_17
パスワード認証を許可 CODE_BLOCK_18 ⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
CODE_BLOCK_19
CODE_BLOCK_20
SSH再起動 CODE_BLOCK_21
鍵ペアの生成
CODE_BLOCK_22
ファイルの パーミッション(デフォルト) CODE_BLOCK_23
CODE_BLOCK_24
繋がらない理由
基本ですが、ログを確認。
CODE_BLOCK_25
CODE_BLOCK_26
エラーログ
CODE_BLOCK_27
原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
CODE_BLOCK_28 8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
CODE_BLOCK_29
その後、sshdを再起動:
CODE_BLOCK_30
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
- PuTTYgen を起動
- 「Parameters」で以下を選択:
- Type of key to generate → RSA
- 2048 以上のビット数を指定(例:4096)
- 「Generate」を押す
- .ppk を保存(PuTTY用)
- 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
- その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
Download PuTTY: latest release (0.83)
![]()
タイトル未取得
説明なし
www.chiark.greenend.org.uk
🔍 解説:なぜ ssh-rsa は非推奨なのか?
ssh-rsaは SHA-1 を署名アルゴリズムに使っており、 SHA-1 は既に衝突(Collision)が実証されているため、暗号的に危険です。- OpenSSH 8.8 以降、デフォルトで無効化されました(2021年リリース)。
✅ 今の状態の是非
| 状態 | 説明 |
|---|---|
✅ 一時的に +ssh-rsa を許可 | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ 長期的には非推奨 | セキュリティの観点では、RSA鍵でも rsa-sha2-256 / rsa-sha2-512 に移行が推奨されます。 |
| ✅ 今後の方針 | 新しく ed25519 や rsa-sha2-256 鍵で鍵ペアを生成して更新していくのがベター。 |
🛠️ 長期的にやっておくと良いこと
- ✅
PuTTYgenでed25519かRSA(withrsa-sha2-256) 鍵を作り直す - ✅
authorized_keysをそれに差し替える - ✅
+ssh-rsaの設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
|---|---|---|
RSA(rsa-sha2-256/512) | ✅ 対応済 | ただし、デフォルトでは ssh-rsa に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク 最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
🚨 注意点
SSH は「設定変更してすぐに接続確認しないとハマる」系の代表格なので、 新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストするのが鉄則です。
もし fail2ban や ufw を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。 パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。 セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
🔧 Pageantの具体的な使い方
✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で .ppk 形式の鍵を作成し、パスフレーズ付きで保存しておく。
✅ 2. Pageantを起動して鍵を読み込む
CODE_BLOCK_31
- 初回のみ、パスフレーズの入力が求められる
- 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
- ダブルクリックで現在の鍵一覧を確認できる
✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
CODE_BLOCK_32
→ パスフレーズの入力なしでログインが可能になる。
鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
✅ 4. 複数の鍵にも対応可能
CODE_BLOCK_33
→ 複数サーバの鍵を同時に管理できる
✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
CODE_BLOCK_34
📝 補足:よくあるQ&A
| 質問 | 回答 |
|---|---|
| 鍵を入れたのに接続できない | セッションの「Auth」で .ppk を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 .ppk を渡せる |
これで、Pageantを活用したパスフレーズ付き鍵の快適運用が一気に現実になります!
Python関連のインストールと環境作成
デフォルトでPython3が入っています。
CODE_BLOCK_35
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
pipの確認とインストール
まず pip が入っているか確認:
CODE_BLOCK_36
CODE_BLOCK_37
CODE_BLOCK_38
pipアップグレード(任意)
CODE_BLOCK_39
仮想環境での開発
仮想環境での開発: python3 -m venv venv で source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。 理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
CODE_BLOCK_40
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。 簡単に言えば:
🔒 エラーメッセージの意味 このPython環境は、OS(apt)によって管理されているため、 pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
✅ 安全な解決策(推奨)
✅ 方法①:仮想環境(venv)を使う ← 安定
CODE_BLOCK_41
こうすることで、システム全体には影響せずに自由にpipが使えます。
✅ 方法②:—break-system-packages を使う ← 応急処置
CODE_BLOCK_42
これは 自己責任で強行突破する方法です。
ただし /usr/lib や /usr/bin には触らないので --user なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
✅ pipx という選択肢も
CODE_BLOCK_43
→ pipx は Python ツール用の「安全な隔離ランチャー」です。
✨ 結論
- 堅実派: venv を使うのが一番安全(おすすめ)
- 簡単に済ませたい派: —break-system-packages を付けて実行でもOK(短期使用なら)
- 将来を見据える派: pipx でモダンに管理するのも◎
仮想環境用モジュールをインストール
CODE_BLOCK_44
その後
CODE_BLOCK_45
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には venv という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、プロジェクトごとにパッケージを分離して管理できる軽量な専用エリアです。
- 他のPythonプロジェクトと干渉しない
- OS全体には影響しない
- 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける仕組みです。
言い換えれば、
🥡 「開発者専用のお弁当箱」
安心してPythonスクリプトを試せる、小さな秘密基地のような存在ともいえます。
🛠️ よく使う3ステップだけ覚えればOK
CODE_BLOCK_46
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
✅ なぜ使うの?
- 古いコードに合わせて古いバージョンのライブラリを使いたいとき
- 複数のプロジェクトで異なる依存関係があるとき
- システム全体を汚したくないとき(安全!)
など、Python開発者にはほぼ必須の道具です。
Sambaにも苦しむ
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
次は、samba ですね。
さっきインストールはしました。
CODE_BLOCK_47
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} 了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。 {{< /chat >}}
🔧 Samba 設定ステップ(超基本)
① 共有フォルダを作成
CODE_BLOCK_48
※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
CODE_BLOCK_49
CODE_BLOCK_50
② Samba 設定ファイルを編集
CODE_BLOCK_51
ファイルの末尾に以下を追記してください:
CODE_BLOCK_52
guest ok = yesは「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
③ Samba 再起動
CODE_BLOCK_53
④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
⑤ Windows などからアクセス
エクスプローラーなどで:
CODE_BLOCK_54
でアクセス可能なはずです。
アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
CODE_BLOCK_55
smb.conf の guest ok = no にして valid users = sambauser を追加すれば制限できます。
何をやっても samba に繋がらない
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
パスワードはあってるけどログインできないですね。
前のサーバの情報を削除しないとダメ?
もしくは、smb.conf の設定が必要だった気がします。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです: {{< /chat >}}
1. none ユーザーを Sambaユーザーとして登録済みか?
CODE_BLOCK_56
2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
CODE_BLOCK_57
3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
CODE_BLOCK_58
4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
- 「資格情報マネージャー」を開く
- 「Windows 資格情報」タブを選択
- 192.168.0.1 に関する項目があれば削除
- 再接続
5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
CODE_BLOCK_59
もし有効なら:
CODE_BLOCK_60
6. Samba 再起動とログ確認
CODE_BLOCK_61
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
CODE_BLOCK_62
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
Sambaのリズムで、底なし沼にダイブですね。
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
ほんとそれです!
最初は陽気なリズムに誘われて――
🥁「タン・タン・ターン!」
🌴「Sambaは自由で楽しい!」
…と思ったら、
\ズボッ/
沼でした。しかも底なし。
🕺 Sambaあるあるリズム
- guest ok = yes ♪
- read only = no ♪
- map to guest = Bad User が裏切る〜♪
そしてWindowsが、
🎭「資格情報を入力してください」→「アクセス拒否!」
でも、このセッションを通じて
あなたはもう「Sambaダンサー」から
Sambaマスターになりました。
次は force user でも valid users でも homes でも、
来るなら来いって感じですね。
(ただし心が沈む前に休憩もお忘れなく🫖)
👣「足元を確認しながらリズムを刻む」
それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。
あなたの踊り、見届けます🪩
{{< /chat >}}
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
sambaに繋がらないほんとの原因
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
こんな情報があったよ。
WindowsからLinux Samba共有にアクセスできない
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。
対処方法(Windows側の認証レベルを上げる)
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。
インストール完了後、PCの再起動を行ってください。
引用元、参考にさせていただいたサイト:
Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ
QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。
anzunote.com{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} おお、それはとても核心を突いた情報です!
まさに 「Windows側の認証レベルの低さ」 が、最近の Samba(特に smbd 4.11+ 以降)とぶつかってログイン失敗する原因の一つです。
✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を既定で無効化しています。
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。
🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。
レジストリエディタで以下を追加:
CODE_BLOCK_63
意味:
| 値 | 内容 |
|---|---|
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
|---|---|
Network security: LAN Manager authentication level | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
SMB1 | なるべく無効化(SMB2 or 3推奨) |
📁 具体例:.regファイル内容(クリック1つで設定)
CODE_BLOCK_64
これを .reg ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
🔄 再起動必須!
変更後は、Windowsを再起動しないと効果が出ないのでご注意を。
🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が LmCompatibilityLevel=3 以上に設定されていれば、
guest ok = no + valid users = none 構成でもうまく行く可能性が上がります。
もし希望があれば .reg ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} sambaのリズムがあってなかったんですよ。
samba の門番:
「入りたいなら、踊ってごらんなさい」
Windowの門下生2:
「♬♪♬♪」
samba の門番:
「ダメですね(アクセス拒否)」
Windowの門下生3:
「♬♪♬♪♬♪」
samba の門番:
「あなたは宜しい、お入りなさい」
Windowの門下生2:
「???」
「私の何が悪いのでしょうか?」
samba の門番:
「次の方どうぞ」
2拍子じゃなくて、3拍子だったということです。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} ……これはまさに、**“Samba 認証オペラ - 3拍子の門”**🎭✨
🕺samba の門番 「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️門下生2(LmCompatibilityLevel = 2) 「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️門番 「…その古いステップ、見飽きました」
🧍♀️門下生3(LmCompatibilityLevel = 3) 「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️門番(即判定) 「認証OK!ようこそ、/home/smb へ!」
🧍♂️門下生2(涙目) 「僕も…NTLMv2だけで踊れるようになりたい…」
この寓話、**設定ミスというより“文化の違い”**みたいなものですね。
- Samba:「モダンなリズムで来てください」
- Windows:「昔ながらの2拍子もイケるんですが?」
- ネットワーク:「リズムが合わないと拒否されます」
🎼 まとめ:設定は踊りのリズム
| 要素 | 踊りの例え |
|---|---|
LmCompatibilityLevel | Windows側のダンスステップ |
ntlm auth | Sambaの許容するステップ範囲 |
client plaintext auth | 「素足で踊っていい?」の確認 |
guest ok | 「入場無料」かどうか |
この一連のやり取り、ほんとにブログ記事になりますよ… タイトル案:「Sambaの門をくぐるには、3拍子を刻め」 あるいは…
「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} こんなの記事にしても仕方ないでしょ… {{< /chat >}}
※結局記事にしました
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「LmCompatibilityLevel = 3」だった、みたいな。
でもね……こういう“泥のような知見”こそ、未来の誰かが 救われる記事 になったりするんです。
🌍 世の中には、こんな人がいます:
- 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
- 「Sambaログに
user [none]って出るけど、意味わからん」 - 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
- 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり 「今のあなたと同じ地雷を踏んだ人」 が、検索してさまようんです。 そんな時、ヒットするのが「こんな記事」だったりするんですよ。
💡 “役立たなさそう”な記事が、最も検索されるジャンル:
- Sambaのログイン失敗とその原因
- Windowsのレジストリの意味
- なぜ
/home/noneに繋がるのか guest okの挙動の違い- NTLMv2の設定ってどこで変えるの?
→ これら、公式ドキュメントに全部は載ってないんです。 → だからこそ、リアルな「解決までの足取り」が価値になるんです。
✍️ もし記事化するなら、こんな構成:
📝 タイトル案
SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
🧩 構成案
-
症状:Samba共有にアクセスできない(ログインできない)
user [none]になってしまうguest ok = noでアクセス不可になる
-
原因調査:ログ確認と設定見直し
log.smbdに「authentication for user [none]」など/home/noneに接続されてる?- smb.conf の
guest okの影響
-
解決方法:Windows側のレジストリ設定
LmCompatibilityLevel = 2 → 3に変更- 再起動後、ログイン成功
-
学びと結論
- NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
guest okの有無で動作が大きく変わる- Sambaログは意外とヒントが詰まってる
結論:記事にする価値、思ってるよりあります。 あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。 「今は疲れた…」なら、このやり取りだけ保存しておけばいい。 落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
必要なら「この記事テンプレ」だけでも残します。 書く気になったらいつでも呼んでください。
{{< /chat >}}
samba にユーザーを追加する
smb用の専用グループ(例:smbgroup)を作って設定する
CODE_BLOCK_65 これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
smb.conf 側の確認
CODE_BLOCK_66 ※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
Samba の再起動
CODE_BLOCK_67
zshの設定
Zshをインストールする手順(Debian系)
CODE_BLOCK_68
CODE_BLOCK_69
ログインシェルを zsh に変更(例: none ユーザー)
CODE_BLOCK_70
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
CODE_BLOCK_71
CODE_BLOCK_72
Oh My Zsh をインストール
CODE_BLOCK_73
CODE_BLOCK_74
最小構成の .zshrc
CODE_BLOCK_75
vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
CODE_BLOCK_76
+clipboard —– クリップボードとの連携に対応
-clipboard —– クリップボードとの連携に未対応
-
vim --version | grep clipboardの結果 →-clipboard -
つまり:
- マウスでコピーした内容を Vim に貼り付けられない
- Vim からコピーした内容を他アプリにペーストもできない
-
-- ビジュアル --の混乱とは別問題
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
CODE_BLOCK_77
もしくは軽量版で clipboard 対応が必要なら:
CODE_BLOCK_78
インストール後に再確認:
CODE_BLOCK_79
→ +clipboard と表示されれば成功です。
なぜ -clipboard がデフォルト?
Debianのvim-tinyやvim.basicはサイズ最小化のため、GUI連携やクリップボード機能を省いています。
vim-gtk3などのパッケージがフル機能版です。
- Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
- Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
"+yや"+pでクリップボードを直接操作
CODE_BLOCK_80
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
日本語入力
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} 今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅? {{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
おぉ…懐かしき kinput2 + canna!
時代の移り変わりをひしひしと感じる話題ですね……。
🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
|---|---|
kinput2 | X11 用のフロントエンド |
canna / wnn | 変換エンジン |
xmodmap | キーバインド設定 |
完全にX環境前提 で、今で言うとレトロPCと同じくらいのノスタルジーです。
{{< /chat >}}
🆕【現在】日本語入力の主流(2020年代〜)
🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
|---|---|
| ibus (Intelligent Input Bus) | モダンなインプットフレームワーク |
| fcitx5 | 高機能で軽量な代替IMEフレームワーク |
| mozc | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
CODE_BLOCK_81
- fcitx5 は日本語+他言語切替も快適
fcitx5-configtoolでGUI設定可能.xprofileや.xinitrcに以下を追記することで起動時に有効化:
CODE_BLOCK_82
CLI特化 or 最小構成サーバ用途
- ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
ibus/fcitxを入れても SSH や tty コンソールでは使えない- どうしてもターミナルで使いたいなら:emacs + mozc.el などのエディタ内IMが頼り
🎴 kinput2 + canna は…?
完全に化石化しました。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、kinput2 -canna 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
💬 余談:なぜ「fcitx5 + mozc」が人気?
- IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
- 日本語変換精度が高い(Google日本語入力ベース)
- GTK, Qt 両対応でWaylandにも対応し始めてる
🔚 結論
-
kinput2 + cannaは現役引退。 -
2025年の今、Linuxで日本語入力したければ:
fcitx5 + mozcが最も安定&高性能- GUI環境ありき、ターミナルでは非対応が基本
- VimやEmacs内部IMEやWSL環境も選択肢
.xinitrc の作成と設定 ~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
CODE_BLOCK_83
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける CODE_BLOCK_84 ✅ GUIで確認:fcitx5が動いてるか? 起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
CODE_BLOCK_85
✨補足:常に有効にしたい場合(デスクトップ環境ごと) GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
CODE_BLOCK_86
まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。 \343\203\207\343\202\271\343\202\257\343\203\210\343\203\203\343\203\227’ ”
原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
CODE_BLOCK_7
たとえばこのように出ていればNGです:
CODE_BLOCK_8
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
CODE_BLOCK_9
日本語
CODE_BLOCK_10
設定反映
CODE_BLOCK_11
英語名に戻したい場合(任意)
CODE_BLOCK_12
英語のほうがスクリプト書く時に楽な面もあり
CODE_BLOCK_13
LANGの確認と変更方法
CODE_BLOCK_14
CODE_BLOCK_15
補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、大正解です。🎯「PuTTYの設定」が文字化けの元凶である可能性が非常に高いです。
PuTTYは軽量で便利ですが、絵文字や多言語(特にCJK+絵文字)への対応が弱いことが知られています。
🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
|---|---|
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
✅ ① 文字コードを UTF-8 に変更
- PuTTY起動
- 左メニュー「Window → Translation」を選択
Remote character setをUTF-8に設定
✅ ② フォントを Unicode 対応フォントに変更
-
左メニュー「Window → Appearance → Font settings → Change」
-
おすすめフォント:
MS GothicMS UI GothicNoto Sans Mono CJK JPMigu 1MDejaVu Sans Mono(一部対応)- 絵文字表示は難しいが、日本語文字化けは大幅に軽減
✅ ③ ターミナルアプリを切り替える(推奨)
💡PuTTYでは絵文字表示はほぼ無理。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
|---|---|
| Windows Terminal(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| KiTTY | PuTTYの派生だが根本的には改善されないことも |
| VSCode + Remote SSH | GUIベースでSSH可能、表示も安心 |
| MobaXterm | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
エラー内容(和訳)
CODE_BLOCK_16 →「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
CODE_BLOCK_17
パスワード認証を許可 CODE_BLOCK_18 ⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
CODE_BLOCK_19
CODE_BLOCK_20
SSH再起動 CODE_BLOCK_21
鍵ペアの生成
CODE_BLOCK_22
ファイルの パーミッション(デフォルト) CODE_BLOCK_23
CODE_BLOCK_24
繋がらない理由
基本ですが、ログを確認。
CODE_BLOCK_25
CODE_BLOCK_26
エラーログ
CODE_BLOCK_27
原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
CODE_BLOCK_28 8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
CODE_BLOCK_29
その後、sshdを再起動:
CODE_BLOCK_30
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
- PuTTYgen を起動
- 「Parameters」で以下を選択:
- Type of key to generate → RSA
- 2048 以上のビット数を指定(例:4096)
- 「Generate」を押す
- .ppk を保存(PuTTY用)
- 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
- その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
Download PuTTY: latest release (0.83)
![]()
タイトル未取得
説明なし
www.chiark.greenend.org.uk
🔍 解説:なぜ ssh-rsa は非推奨なのか?
ssh-rsaは SHA-1 を署名アルゴリズムに使っており、 SHA-1 は既に衝突(Collision)が実証されているため、暗号的に危険です。- OpenSSH 8.8 以降、デフォルトで無効化されました(2021年リリース)。
✅ 今の状態の是非
| 状態 | 説明 |
|---|---|
✅ 一時的に +ssh-rsa を許可 | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ 長期的には非推奨 | セキュリティの観点では、RSA鍵でも rsa-sha2-256 / rsa-sha2-512 に移行が推奨されます。 |
| ✅ 今後の方針 | 新しく ed25519 や rsa-sha2-256 鍵で鍵ペアを生成して更新していくのがベター。 |
🛠️ 長期的にやっておくと良いこと
- ✅
PuTTYgenでed25519かRSA(withrsa-sha2-256) 鍵を作り直す - ✅
authorized_keysをそれに差し替える - ✅
+ssh-rsaの設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
|---|---|---|
RSA(rsa-sha2-256/512) | ✅ 対応済 | ただし、デフォルトでは ssh-rsa に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク 最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
🚨 注意点
SSH は「設定変更してすぐに接続確認しないとハマる」系の代表格なので、 新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストするのが鉄則です。
もし fail2ban や ufw を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。 パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。 セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
🔧 Pageantの具体的な使い方
✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で .ppk 形式の鍵を作成し、パスフレーズ付きで保存しておく。
✅ 2. Pageantを起動して鍵を読み込む
CODE_BLOCK_31
- 初回のみ、パスフレーズの入力が求められる
- 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
- ダブルクリックで現在の鍵一覧を確認できる
✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
CODE_BLOCK_32
→ パスフレーズの入力なしでログインが可能になる。
鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
✅ 4. 複数の鍵にも対応可能
CODE_BLOCK_33
→ 複数サーバの鍵を同時に管理できる
✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
CODE_BLOCK_34
📝 補足:よくあるQ&A
| 質問 | 回答 |
|---|---|
| 鍵を入れたのに接続できない | セッションの「Auth」で .ppk を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 .ppk を渡せる |
これで、Pageantを活用したパスフレーズ付き鍵の快適運用が一気に現実になります!
Python関連のインストールと環境作成
デフォルトでPython3が入っています。
CODE_BLOCK_35
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
pipの確認とインストール
まず pip が入っているか確認:
CODE_BLOCK_36
CODE_BLOCK_37
CODE_BLOCK_38
pipアップグレード(任意)
CODE_BLOCK_39
仮想環境での開発
仮想環境での開発: python3 -m venv venv で source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。 理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
CODE_BLOCK_40
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。 簡単に言えば:
🔒 エラーメッセージの意味 このPython環境は、OS(apt)によって管理されているため、 pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
✅ 安全な解決策(推奨)
✅ 方法①:仮想環境(venv)を使う ← 安定
CODE_BLOCK_41
こうすることで、システム全体には影響せずに自由にpipが使えます。
✅ 方法②:—break-system-packages を使う ← 応急処置
CODE_BLOCK_42
これは 自己責任で強行突破する方法です。
ただし /usr/lib や /usr/bin には触らないので --user なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
✅ pipx という選択肢も
CODE_BLOCK_43
→ pipx は Python ツール用の「安全な隔離ランチャー」です。
✨ 結論
- 堅実派: venv を使うのが一番安全(おすすめ)
- 簡単に済ませたい派: —break-system-packages を付けて実行でもOK(短期使用なら)
- 将来を見据える派: pipx でモダンに管理するのも◎
仮想環境用モジュールをインストール
CODE_BLOCK_44
その後
CODE_BLOCK_45
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には venv という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、プロジェクトごとにパッケージを分離して管理できる軽量な専用エリアです。
- 他のPythonプロジェクトと干渉しない
- OS全体には影響しない
- 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける仕組みです。
言い換えれば、
🥡 「開発者専用のお弁当箱」
安心してPythonスクリプトを試せる、小さな秘密基地のような存在ともいえます。
🛠️ よく使う3ステップだけ覚えればOK
CODE_BLOCK_46
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
✅ なぜ使うの?
- 古いコードに合わせて古いバージョンのライブラリを使いたいとき
- 複数のプロジェクトで異なる依存関係があるとき
- システム全体を汚したくないとき(安全!)
など、Python開発者にはほぼ必須の道具です。
Sambaにも苦しむ
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
次は、samba ですね。
さっきインストールはしました。
CODE_BLOCK_47
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} 了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。 {{< /chat >}}
🔧 Samba 設定ステップ(超基本)
① 共有フォルダを作成
CODE_BLOCK_48
※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
CODE_BLOCK_49
CODE_BLOCK_50
② Samba 設定ファイルを編集
CODE_BLOCK_51
ファイルの末尾に以下を追記してください:
CODE_BLOCK_52
guest ok = yesは「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
③ Samba 再起動
CODE_BLOCK_53
④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
⑤ Windows などからアクセス
エクスプローラーなどで:
CODE_BLOCK_54
でアクセス可能なはずです。
アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
CODE_BLOCK_55
smb.conf の guest ok = no にして valid users = sambauser を追加すれば制限できます。
何をやっても samba に繋がらない
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
パスワードはあってるけどログインできないですね。
前のサーバの情報を削除しないとダメ?
もしくは、smb.conf の設定が必要だった気がします。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです: {{< /chat >}}
1. none ユーザーを Sambaユーザーとして登録済みか?
CODE_BLOCK_56
2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
CODE_BLOCK_57
3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
CODE_BLOCK_58
4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
- 「資格情報マネージャー」を開く
- 「Windows 資格情報」タブを選択
- 192.168.0.1 に関する項目があれば削除
- 再接続
5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
CODE_BLOCK_59
もし有効なら:
CODE_BLOCK_60
6. Samba 再起動とログ確認
CODE_BLOCK_61
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
CODE_BLOCK_62
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
Sambaのリズムで、底なし沼にダイブですね。
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
ほんとそれです!
最初は陽気なリズムに誘われて――
🥁「タン・タン・ターン!」
🌴「Sambaは自由で楽しい!」
…と思ったら、
\ズボッ/
沼でした。しかも底なし。
🕺 Sambaあるあるリズム
- guest ok = yes ♪
- read only = no ♪
- map to guest = Bad User が裏切る〜♪
そしてWindowsが、
🎭「資格情報を入力してください」→「アクセス拒否!」
でも、このセッションを通じて
あなたはもう「Sambaダンサー」から
Sambaマスターになりました。
次は force user でも valid users でも homes でも、
来るなら来いって感じですね。
(ただし心が沈む前に休憩もお忘れなく🫖)
👣「足元を確認しながらリズムを刻む」
それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。
あなたの踊り、見届けます🪩
{{< /chat >}}
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
sambaに繋がらないほんとの原因
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
こんな情報があったよ。
WindowsからLinux Samba共有にアクセスできない
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。
対処方法(Windows側の認証レベルを上げる)
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。
インストール完了後、PCの再起動を行ってください。
引用元、参考にさせていただいたサイト:
Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ
QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。
anzunote.com{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} おお、それはとても核心を突いた情報です!
まさに 「Windows側の認証レベルの低さ」 が、最近の Samba(特に smbd 4.11+ 以降)とぶつかってログイン失敗する原因の一つです。
✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を既定で無効化しています。
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。
🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。
レジストリエディタで以下を追加:
CODE_BLOCK_63
意味:
| 値 | 内容 |
|---|---|
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
|---|---|
Network security: LAN Manager authentication level | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
SMB1 | なるべく無効化(SMB2 or 3推奨) |
📁 具体例:.regファイル内容(クリック1つで設定)
CODE_BLOCK_64
これを .reg ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
🔄 再起動必須!
変更後は、Windowsを再起動しないと効果が出ないのでご注意を。
🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が LmCompatibilityLevel=3 以上に設定されていれば、
guest ok = no + valid users = none 構成でもうまく行く可能性が上がります。
もし希望があれば .reg ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} sambaのリズムがあってなかったんですよ。
samba の門番:
「入りたいなら、踊ってごらんなさい」
Windowの門下生2:
「♬♪♬♪」
samba の門番:
「ダメですね(アクセス拒否)」
Windowの門下生3:
「♬♪♬♪♬♪」
samba の門番:
「あなたは宜しい、お入りなさい」
Windowの門下生2:
「???」
「私の何が悪いのでしょうか?」
samba の門番:
「次の方どうぞ」
2拍子じゃなくて、3拍子だったということです。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} ……これはまさに、**“Samba 認証オペラ - 3拍子の門”**🎭✨
🕺samba の門番 「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️門下生2(LmCompatibilityLevel = 2) 「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️門番 「…その古いステップ、見飽きました」
🧍♀️門下生3(LmCompatibilityLevel = 3) 「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️門番(即判定) 「認証OK!ようこそ、/home/smb へ!」
🧍♂️門下生2(涙目) 「僕も…NTLMv2だけで踊れるようになりたい…」
この寓話、**設定ミスというより“文化の違い”**みたいなものですね。
- Samba:「モダンなリズムで来てください」
- Windows:「昔ながらの2拍子もイケるんですが?」
- ネットワーク:「リズムが合わないと拒否されます」
🎼 まとめ:設定は踊りのリズム
| 要素 | 踊りの例え |
|---|---|
LmCompatibilityLevel | Windows側のダンスステップ |
ntlm auth | Sambaの許容するステップ範囲 |
client plaintext auth | 「素足で踊っていい?」の確認 |
guest ok | 「入場無料」かどうか |
この一連のやり取り、ほんとにブログ記事になりますよ… タイトル案:「Sambaの門をくぐるには、3拍子を刻め」 あるいは…
「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} こんなの記事にしても仕方ないでしょ… {{< /chat >}}
※結局記事にしました
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「LmCompatibilityLevel = 3」だった、みたいな。
でもね……こういう“泥のような知見”こそ、未来の誰かが 救われる記事 になったりするんです。
🌍 世の中には、こんな人がいます:
- 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
- 「Sambaログに
user [none]って出るけど、意味わからん」 - 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
- 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり 「今のあなたと同じ地雷を踏んだ人」 が、検索してさまようんです。 そんな時、ヒットするのが「こんな記事」だったりするんですよ。
💡 “役立たなさそう”な記事が、最も検索されるジャンル:
- Sambaのログイン失敗とその原因
- Windowsのレジストリの意味
- なぜ
/home/noneに繋がるのか guest okの挙動の違い- NTLMv2の設定ってどこで変えるの?
→ これら、公式ドキュメントに全部は載ってないんです。 → だからこそ、リアルな「解決までの足取り」が価値になるんです。
✍️ もし記事化するなら、こんな構成:
📝 タイトル案
SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
🧩 構成案
-
症状:Samba共有にアクセスできない(ログインできない)
user [none]になってしまうguest ok = noでアクセス不可になる
-
原因調査:ログ確認と設定見直し
log.smbdに「authentication for user [none]」など/home/noneに接続されてる?- smb.conf の
guest okの影響
-
解決方法:Windows側のレジストリ設定
LmCompatibilityLevel = 2 → 3に変更- 再起動後、ログイン成功
-
学びと結論
- NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
guest okの有無で動作が大きく変わる- Sambaログは意外とヒントが詰まってる
結論:記事にする価値、思ってるよりあります。 あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。 「今は疲れた…」なら、このやり取りだけ保存しておけばいい。 落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
必要なら「この記事テンプレ」だけでも残します。 書く気になったらいつでも呼んでください。
{{< /chat >}}
samba にユーザーを追加する
smb用の専用グループ(例:smbgroup)を作って設定する
CODE_BLOCK_65 これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
smb.conf 側の確認
CODE_BLOCK_66 ※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
Samba の再起動
CODE_BLOCK_67
zshの設定
Zshをインストールする手順(Debian系)
CODE_BLOCK_68
CODE_BLOCK_69
ログインシェルを zsh に変更(例: none ユーザー)
CODE_BLOCK_70
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
CODE_BLOCK_71
CODE_BLOCK_72
Oh My Zsh をインストール
CODE_BLOCK_73
CODE_BLOCK_74
最小構成の .zshrc
CODE_BLOCK_75
vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
CODE_BLOCK_76
+clipboard —– クリップボードとの連携に対応
-clipboard —– クリップボードとの連携に未対応
-
vim --version | grep clipboardの結果 →-clipboard -
つまり:
- マウスでコピーした内容を Vim に貼り付けられない
- Vim からコピーした内容を他アプリにペーストもできない
-
-- ビジュアル --の混乱とは別問題
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
CODE_BLOCK_77
もしくは軽量版で clipboard 対応が必要なら:
CODE_BLOCK_78
インストール後に再確認:
CODE_BLOCK_79
→ +clipboard と表示されれば成功です。
なぜ -clipboard がデフォルト?
Debianのvim-tinyやvim.basicはサイズ最小化のため、GUI連携やクリップボード機能を省いています。
vim-gtk3などのパッケージがフル機能版です。
- Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
- Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
"+yや"+pでクリップボードを直接操作
CODE_BLOCK_80
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
日本語入力
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} 今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅? {{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
おぉ…懐かしき kinput2 + canna!
時代の移り変わりをひしひしと感じる話題ですね……。
🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
|---|---|
kinput2 | X11 用のフロントエンド |
canna / wnn | 変換エンジン |
xmodmap | キーバインド設定 |
完全にX環境前提 で、今で言うとレトロPCと同じくらいのノスタルジーです。
{{< /chat >}}
🆕【現在】日本語入力の主流(2020年代〜)
🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
|---|---|
| ibus (Intelligent Input Bus) | モダンなインプットフレームワーク |
| fcitx5 | 高機能で軽量な代替IMEフレームワーク |
| mozc | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
CODE_BLOCK_81
- fcitx5 は日本語+他言語切替も快適
fcitx5-configtoolでGUI設定可能.xprofileや.xinitrcに以下を追記することで起動時に有効化:
CODE_BLOCK_82
CLI特化 or 最小構成サーバ用途
- ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
ibus/fcitxを入れても SSH や tty コンソールでは使えない- どうしてもターミナルで使いたいなら:emacs + mozc.el などのエディタ内IMが頼り
🎴 kinput2 + canna は…?
完全に化石化しました。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、kinput2 -canna 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
💬 余談:なぜ「fcitx5 + mozc」が人気?
- IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
- 日本語変換精度が高い(Google日本語入力ベース)
- GTK, Qt 両対応でWaylandにも対応し始めてる
🔚 結論
-
kinput2 + cannaは現役引退。 -
2025年の今、Linuxで日本語入力したければ:
fcitx5 + mozcが最も安定&高性能- GUI環境ありき、ターミナルでは非対応が基本
- VimやEmacs内部IMEやWSL環境も選択肢
.xinitrc の作成と設定 ~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
CODE_BLOCK_83
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける CODE_BLOCK_84 ✅ GUIで確認:fcitx5が動いてるか? 起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
CODE_BLOCK_85
✨補足:常に有効にしたい場合(デスクトップ環境ごと) GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
CODE_BLOCK_86
まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。 \343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210’ ”
原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
CODE_BLOCK_7
たとえばこのように出ていればNGです:
CODE_BLOCK_8
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
CODE_BLOCK_9
日本語
CODE_BLOCK_10
設定反映
CODE_BLOCK_11
英語名に戻したい場合(任意)
CODE_BLOCK_12
英語のほうがスクリプト書く時に楽な面もあり
CODE_BLOCK_13
LANGの確認と変更方法
CODE_BLOCK_14
CODE_BLOCK_15
補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、大正解です。🎯「PuTTYの設定」が文字化けの元凶である可能性が非常に高いです。
PuTTYは軽量で便利ですが、絵文字や多言語(特にCJK+絵文字)への対応が弱いことが知られています。
🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
|---|---|
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
✅ ① 文字コードを UTF-8 に変更
- PuTTY起動
- 左メニュー「Window → Translation」を選択
Remote character setをUTF-8に設定
✅ ② フォントを Unicode 対応フォントに変更
-
左メニュー「Window → Appearance → Font settings → Change」
-
おすすめフォント:
MS GothicMS UI GothicNoto Sans Mono CJK JPMigu 1MDejaVu Sans Mono(一部対応)- 絵文字表示は難しいが、日本語文字化けは大幅に軽減
✅ ③ ターミナルアプリを切り替える(推奨)
💡PuTTYでは絵文字表示はほぼ無理。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
|---|---|
| Windows Terminal(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| KiTTY | PuTTYの派生だが根本的には改善されないことも |
| VSCode + Remote SSH | GUIベースでSSH可能、表示も安心 |
| MobaXterm | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
エラー内容(和訳)
CODE_BLOCK_16 →「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
CODE_BLOCK_17
パスワード認証を許可 CODE_BLOCK_18 ⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
CODE_BLOCK_19
CODE_BLOCK_20
SSH再起動 CODE_BLOCK_21
鍵ペアの生成
CODE_BLOCK_22
ファイルの パーミッション(デフォルト) CODE_BLOCK_23
CODE_BLOCK_24
繋がらない理由
基本ですが、ログを確認。
CODE_BLOCK_25
CODE_BLOCK_26
エラーログ
CODE_BLOCK_27
原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
CODE_BLOCK_28 8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
CODE_BLOCK_29
その後、sshdを再起動:
CODE_BLOCK_30
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
- PuTTYgen を起動
- 「Parameters」で以下を選択:
- Type of key to generate → RSA
- 2048 以上のビット数を指定(例:4096)
- 「Generate」を押す
- .ppk を保存(PuTTY用)
- 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
- その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
Download PuTTY: latest release (0.83)
![]()
タイトル未取得
説明なし
www.chiark.greenend.org.uk
🔍 解説:なぜ ssh-rsa は非推奨なのか?
ssh-rsaは SHA-1 を署名アルゴリズムに使っており、 SHA-1 は既に衝突(Collision)が実証されているため、暗号的に危険です。- OpenSSH 8.8 以降、デフォルトで無効化されました(2021年リリース)。
✅ 今の状態の是非
| 状態 | 説明 |
|---|---|
✅ 一時的に +ssh-rsa を許可 | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ 長期的には非推奨 | セキュリティの観点では、RSA鍵でも rsa-sha2-256 / rsa-sha2-512 に移行が推奨されます。 |
| ✅ 今後の方針 | 新しく ed25519 や rsa-sha2-256 鍵で鍵ペアを生成して更新していくのがベター。 |
🛠️ 長期的にやっておくと良いこと
- ✅
PuTTYgenでed25519かRSA(withrsa-sha2-256) 鍵を作り直す - ✅
authorized_keysをそれに差し替える - ✅
+ssh-rsaの設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
|---|---|---|
RSA(rsa-sha2-256/512) | ✅ 対応済 | ただし、デフォルトでは ssh-rsa に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク 最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
🚨 注意点
SSH は「設定変更してすぐに接続確認しないとハマる」系の代表格なので、 新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストするのが鉄則です。
もし fail2ban や ufw を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。 パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。 セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
🔧 Pageantの具体的な使い方
✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で .ppk 形式の鍵を作成し、パスフレーズ付きで保存しておく。
✅ 2. Pageantを起動して鍵を読み込む
CODE_BLOCK_31
- 初回のみ、パスフレーズの入力が求められる
- 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
- ダブルクリックで現在の鍵一覧を確認できる
✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
CODE_BLOCK_32
→ パスフレーズの入力なしでログインが可能になる。
鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
✅ 4. 複数の鍵にも対応可能
CODE_BLOCK_33
→ 複数サーバの鍵を同時に管理できる
✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
CODE_BLOCK_34
📝 補足:よくあるQ&A
| 質問 | 回答 |
|---|---|
| 鍵を入れたのに接続できない | セッションの「Auth」で .ppk を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 .ppk を渡せる |
これで、Pageantを活用したパスフレーズ付き鍵の快適運用が一気に現実になります!
Python関連のインストールと環境作成
デフォルトでPython3が入っています。
CODE_BLOCK_35
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
pipの確認とインストール
まず pip が入っているか確認:
CODE_BLOCK_36
CODE_BLOCK_37
CODE_BLOCK_38
pipアップグレード(任意)
CODE_BLOCK_39
仮想環境での開発
仮想環境での開発: python3 -m venv venv で source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。 理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
CODE_BLOCK_40
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。 簡単に言えば:
🔒 エラーメッセージの意味 このPython環境は、OS(apt)によって管理されているため、 pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
✅ 安全な解決策(推奨)
✅ 方法①:仮想環境(venv)を使う ← 安定
CODE_BLOCK_41
こうすることで、システム全体には影響せずに自由にpipが使えます。
✅ 方法②:—break-system-packages を使う ← 応急処置
CODE_BLOCK_42
これは 自己責任で強行突破する方法です。
ただし /usr/lib や /usr/bin には触らないので --user なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
✅ pipx という選択肢も
CODE_BLOCK_43
→ pipx は Python ツール用の「安全な隔離ランチャー」です。
✨ 結論
- 堅実派: venv を使うのが一番安全(おすすめ)
- 簡単に済ませたい派: —break-system-packages を付けて実行でもOK(短期使用なら)
- 将来を見据える派: pipx でモダンに管理するのも◎
仮想環境用モジュールをインストール
CODE_BLOCK_44
その後
CODE_BLOCK_45
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には venv という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、プロジェクトごとにパッケージを分離して管理できる軽量な専用エリアです。
- 他のPythonプロジェクトと干渉しない
- OS全体には影響しない
- 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける仕組みです。
言い換えれば、
🥡 「開発者専用のお弁当箱」
安心してPythonスクリプトを試せる、小さな秘密基地のような存在ともいえます。
🛠️ よく使う3ステップだけ覚えればOK
CODE_BLOCK_46
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
✅ なぜ使うの?
- 古いコードに合わせて古いバージョンのライブラリを使いたいとき
- 複数のプロジェクトで異なる依存関係があるとき
- システム全体を汚したくないとき(安全!)
など、Python開発者にはほぼ必須の道具です。
Sambaにも苦しむ
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
次は、samba ですね。
さっきインストールはしました。
CODE_BLOCK_47
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} 了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。 {{< /chat >}}
🔧 Samba 設定ステップ(超基本)
① 共有フォルダを作成
CODE_BLOCK_48
※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
CODE_BLOCK_49
CODE_BLOCK_50
② Samba 設定ファイルを編集
CODE_BLOCK_51
ファイルの末尾に以下を追記してください:
CODE_BLOCK_52
guest ok = yesは「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
③ Samba 再起動
CODE_BLOCK_53
④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
⑤ Windows などからアクセス
エクスプローラーなどで:
CODE_BLOCK_54
でアクセス可能なはずです。
アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
CODE_BLOCK_55
smb.conf の guest ok = no にして valid users = sambauser を追加すれば制限できます。
何をやっても samba に繋がらない
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
パスワードはあってるけどログインできないですね。
前のサーバの情報を削除しないとダメ?
もしくは、smb.conf の設定が必要だった気がします。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです: {{< /chat >}}
1. none ユーザーを Sambaユーザーとして登録済みか?
CODE_BLOCK_56
2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
CODE_BLOCK_57
3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
CODE_BLOCK_58
4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
- 「資格情報マネージャー」を開く
- 「Windows 資格情報」タブを選択
- 192.168.0.1 に関する項目があれば削除
- 再接続
5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
CODE_BLOCK_59
もし有効なら:
CODE_BLOCK_60
6. Samba 再起動とログ確認
CODE_BLOCK_61
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
CODE_BLOCK_62
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
Sambaのリズムで、底なし沼にダイブですね。
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
ほんとそれです!
最初は陽気なリズムに誘われて――
🥁「タン・タン・ターン!」
🌴「Sambaは自由で楽しい!」
…と思ったら、
\ズボッ/
沼でした。しかも底なし。
🕺 Sambaあるあるリズム
- guest ok = yes ♪
- read only = no ♪
- map to guest = Bad User が裏切る〜♪
そしてWindowsが、
🎭「資格情報を入力してください」→「アクセス拒否!」
でも、このセッションを通じて
あなたはもう「Sambaダンサー」から
Sambaマスターになりました。
次は force user でも valid users でも homes でも、
来るなら来いって感じですね。
(ただし心が沈む前に休憩もお忘れなく🫖)
👣「足元を確認しながらリズムを刻む」
それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。
あなたの踊り、見届けます🪩
{{< /chat >}}
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
sambaに繋がらないほんとの原因
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
こんな情報があったよ。
WindowsからLinux Samba共有にアクセスできない
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。
対処方法(Windows側の認証レベルを上げる)
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。
インストール完了後、PCの再起動を行ってください。
引用元、参考にさせていただいたサイト:
Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ
QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。
anzunote.com{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} おお、それはとても核心を突いた情報です!
まさに 「Windows側の認証レベルの低さ」 が、最近の Samba(特に smbd 4.11+ 以降)とぶつかってログイン失敗する原因の一つです。
✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を既定で無効化しています。
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。
🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。
レジストリエディタで以下を追加:
CODE_BLOCK_63
意味:
| 値 | 内容 |
|---|---|
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
|---|---|
Network security: LAN Manager authentication level | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
SMB1 | なるべく無効化(SMB2 or 3推奨) |
📁 具体例:.regファイル内容(クリック1つで設定)
CODE_BLOCK_64
これを .reg ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
🔄 再起動必須!
変更後は、Windowsを再起動しないと効果が出ないのでご注意を。
🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が LmCompatibilityLevel=3 以上に設定されていれば、
guest ok = no + valid users = none 構成でもうまく行く可能性が上がります。
もし希望があれば .reg ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} sambaのリズムがあってなかったんですよ。
samba の門番:
「入りたいなら、踊ってごらんなさい」
Windowの門下生2:
「♬♪♬♪」
samba の門番:
「ダメですね(アクセス拒否)」
Windowの門下生3:
「♬♪♬♪♬♪」
samba の門番:
「あなたは宜しい、お入りなさい」
Windowの門下生2:
「???」
「私の何が悪いのでしょうか?」
samba の門番:
「次の方どうぞ」
2拍子じゃなくて、3拍子だったということです。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} ……これはまさに、**“Samba 認証オペラ - 3拍子の門”**🎭✨
🕺samba の門番 「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️門下生2(LmCompatibilityLevel = 2) 「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️門番 「…その古いステップ、見飽きました」
🧍♀️門下生3(LmCompatibilityLevel = 3) 「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️門番(即判定) 「認証OK!ようこそ、/home/smb へ!」
🧍♂️門下生2(涙目) 「僕も…NTLMv2だけで踊れるようになりたい…」
この寓話、**設定ミスというより“文化の違い”**みたいなものですね。
- Samba:「モダンなリズムで来てください」
- Windows:「昔ながらの2拍子もイケるんですが?」
- ネットワーク:「リズムが合わないと拒否されます」
🎼 まとめ:設定は踊りのリズム
| 要素 | 踊りの例え |
|---|---|
LmCompatibilityLevel | Windows側のダンスステップ |
ntlm auth | Sambaの許容するステップ範囲 |
client plaintext auth | 「素足で踊っていい?」の確認 |
guest ok | 「入場無料」かどうか |
この一連のやり取り、ほんとにブログ記事になりますよ… タイトル案:「Sambaの門をくぐるには、3拍子を刻め」 あるいは…
「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} こんなの記事にしても仕方ないでしょ… {{< /chat >}}
※結局記事にしました
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「LmCompatibilityLevel = 3」だった、みたいな。
でもね……こういう“泥のような知見”こそ、未来の誰かが 救われる記事 になったりするんです。
🌍 世の中には、こんな人がいます:
- 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
- 「Sambaログに
user [none]って出るけど、意味わからん」 - 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
- 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり 「今のあなたと同じ地雷を踏んだ人」 が、検索してさまようんです。 そんな時、ヒットするのが「こんな記事」だったりするんですよ。
💡 “役立たなさそう”な記事が、最も検索されるジャンル:
- Sambaのログイン失敗とその原因
- Windowsのレジストリの意味
- なぜ
/home/noneに繋がるのか guest okの挙動の違い- NTLMv2の設定ってどこで変えるの?
→ これら、公式ドキュメントに全部は載ってないんです。 → だからこそ、リアルな「解決までの足取り」が価値になるんです。
✍️ もし記事化するなら、こんな構成:
📝 タイトル案
SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
🧩 構成案
-
症状:Samba共有にアクセスできない(ログインできない)
user [none]になってしまうguest ok = noでアクセス不可になる
-
原因調査:ログ確認と設定見直し
log.smbdに「authentication for user [none]」など/home/noneに接続されてる?- smb.conf の
guest okの影響
-
解決方法:Windows側のレジストリ設定
LmCompatibilityLevel = 2 → 3に変更- 再起動後、ログイン成功
-
学びと結論
- NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
guest okの有無で動作が大きく変わる- Sambaログは意外とヒントが詰まってる
結論:記事にする価値、思ってるよりあります。 あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。 「今は疲れた…」なら、このやり取りだけ保存しておけばいい。 落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
必要なら「この記事テンプレ」だけでも残します。 書く気になったらいつでも呼んでください。
{{< /chat >}}
samba にユーザーを追加する
smb用の専用グループ(例:smbgroup)を作って設定する
CODE_BLOCK_65 これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
smb.conf 側の確認
CODE_BLOCK_66 ※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
Samba の再起動
CODE_BLOCK_67
zshの設定
Zshをインストールする手順(Debian系)
CODE_BLOCK_68
CODE_BLOCK_69
ログインシェルを zsh に変更(例: none ユーザー)
CODE_BLOCK_70
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
CODE_BLOCK_71
CODE_BLOCK_72
Oh My Zsh をインストール
CODE_BLOCK_73
CODE_BLOCK_74
最小構成の .zshrc
CODE_BLOCK_75
vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
CODE_BLOCK_76
+clipboard —– クリップボードとの連携に対応
-clipboard —– クリップボードとの連携に未対応
-
vim --version | grep clipboardの結果 →-clipboard -
つまり:
- マウスでコピーした内容を Vim に貼り付けられない
- Vim からコピーした内容を他アプリにペーストもできない
-
-- ビジュアル --の混乱とは別問題
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
CODE_BLOCK_77
もしくは軽量版で clipboard 対応が必要なら:
CODE_BLOCK_78
インストール後に再確認:
CODE_BLOCK_79
→ +clipboard と表示されれば成功です。
なぜ -clipboard がデフォルト?
Debianのvim-tinyやvim.basicはサイズ最小化のため、GUI連携やクリップボード機能を省いています。
vim-gtk3などのパッケージがフル機能版です。
- Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
- Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
"+yや"+pでクリップボードを直接操作
CODE_BLOCK_80
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
日本語入力
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} 今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅? {{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
おぉ…懐かしき kinput2 + canna!
時代の移り変わりをひしひしと感じる話題ですね……。
🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
|---|---|
kinput2 | X11 用のフロントエンド |
canna / wnn | 変換エンジン |
xmodmap | キーバインド設定 |
完全にX環境前提 で、今で言うとレトロPCと同じくらいのノスタルジーです。
{{< /chat >}}
🆕【現在】日本語入力の主流(2020年代〜)
🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
|---|---|
| ibus (Intelligent Input Bus) | モダンなインプットフレームワーク |
| fcitx5 | 高機能で軽量な代替IMEフレームワーク |
| mozc | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
CODE_BLOCK_81
- fcitx5 は日本語+他言語切替も快適
fcitx5-configtoolでGUI設定可能.xprofileや.xinitrcに以下を追記することで起動時に有効化:
CODE_BLOCK_82
CLI特化 or 最小構成サーバ用途
- ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
ibus/fcitxを入れても SSH や tty コンソールでは使えない- どうしてもターミナルで使いたいなら:emacs + mozc.el などのエディタ内IMが頼り
🎴 kinput2 + canna は…?
完全に化石化しました。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、kinput2 -canna 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
💬 余談:なぜ「fcitx5 + mozc」が人気?
- IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
- 日本語変換精度が高い(Google日本語入力ベース)
- GTK, Qt 両対応でWaylandにも対応し始めてる
🔚 結論
-
kinput2 + cannaは現役引退。 -
2025年の今、Linuxで日本語入力したければ:
fcitx5 + mozcが最も安定&高性能- GUI環境ありき、ターミナルでは非対応が基本
- VimやEmacs内部IMEやWSL環境も選択肢
.xinitrc の作成と設定 ~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
CODE_BLOCK_83
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける CODE_BLOCK_84 ✅ GUIで確認:fcitx5が動いてるか? 起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
CODE_BLOCK_85
✨補足:常に有効にしたい場合(デスクトップ環境ごと) GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
CODE_BLOCK_86
まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。 \343\203\223\343\203\207\343\202\252’ ”
原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
CODE_BLOCK_7
たとえばこのように出ていればNGです:
CODE_BLOCK_8
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
CODE_BLOCK_9
日本語
CODE_BLOCK_10
設定反映
CODE_BLOCK_11
英語名に戻したい場合(任意)
CODE_BLOCK_12
英語のほうがスクリプト書く時に楽な面もあり
CODE_BLOCK_13
LANGの確認と変更方法
CODE_BLOCK_14
CODE_BLOCK_15
補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、大正解です。🎯「PuTTYの設定」が文字化けの元凶である可能性が非常に高いです。
PuTTYは軽量で便利ですが、絵文字や多言語(特にCJK+絵文字)への対応が弱いことが知られています。
🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
|---|---|
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
✅ ① 文字コードを UTF-8 に変更
- PuTTY起動
- 左メニュー「Window → Translation」を選択
Remote character setをUTF-8に設定
✅ ② フォントを Unicode 対応フォントに変更
-
左メニュー「Window → Appearance → Font settings → Change」
-
おすすめフォント:
MS GothicMS UI GothicNoto Sans Mono CJK JPMigu 1MDejaVu Sans Mono(一部対応)- 絵文字表示は難しいが、日本語文字化けは大幅に軽減
✅ ③ ターミナルアプリを切り替える(推奨)
💡PuTTYでは絵文字表示はほぼ無理。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
|---|---|
| Windows Terminal(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| KiTTY | PuTTYの派生だが根本的には改善されないことも |
| VSCode + Remote SSH | GUIベースでSSH可能、表示も安心 |
| MobaXterm | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
エラー内容(和訳)
CODE_BLOCK_16 →「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
CODE_BLOCK_17
パスワード認証を許可 CODE_BLOCK_18 ⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
CODE_BLOCK_19
CODE_BLOCK_20
SSH再起動 CODE_BLOCK_21
鍵ペアの生成
CODE_BLOCK_22
ファイルの パーミッション(デフォルト) CODE_BLOCK_23
CODE_BLOCK_24
繋がらない理由
基本ですが、ログを確認。
CODE_BLOCK_25
CODE_BLOCK_26
エラーログ
CODE_BLOCK_27
原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
CODE_BLOCK_28 8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
CODE_BLOCK_29
その後、sshdを再起動:
CODE_BLOCK_30
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
- PuTTYgen を起動
- 「Parameters」で以下を選択:
- Type of key to generate → RSA
- 2048 以上のビット数を指定(例:4096)
- 「Generate」を押す
- .ppk を保存(PuTTY用)
- 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
- その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
Download PuTTY: latest release (0.83)
![]()
タイトル未取得
説明なし
www.chiark.greenend.org.uk
🔍 解説:なぜ ssh-rsa は非推奨なのか?
ssh-rsaは SHA-1 を署名アルゴリズムに使っており、 SHA-1 は既に衝突(Collision)が実証されているため、暗号的に危険です。- OpenSSH 8.8 以降、デフォルトで無効化されました(2021年リリース)。
✅ 今の状態の是非
| 状態 | 説明 |
|---|---|
✅ 一時的に +ssh-rsa を許可 | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ 長期的には非推奨 | セキュリティの観点では、RSA鍵でも rsa-sha2-256 / rsa-sha2-512 に移行が推奨されます。 |
| ✅ 今後の方針 | 新しく ed25519 や rsa-sha2-256 鍵で鍵ペアを生成して更新していくのがベター。 |
🛠️ 長期的にやっておくと良いこと
- ✅
PuTTYgenでed25519かRSA(withrsa-sha2-256) 鍵を作り直す - ✅
authorized_keysをそれに差し替える - ✅
+ssh-rsaの設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
|---|---|---|
RSA(rsa-sha2-256/512) | ✅ 対応済 | ただし、デフォルトでは ssh-rsa に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク 最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
🚨 注意点
SSH は「設定変更してすぐに接続確認しないとハマる」系の代表格なので、 新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストするのが鉄則です。
もし fail2ban や ufw を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。 パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。 セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
🔧 Pageantの具体的な使い方
✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で .ppk 形式の鍵を作成し、パスフレーズ付きで保存しておく。
✅ 2. Pageantを起動して鍵を読み込む
CODE_BLOCK_31
- 初回のみ、パスフレーズの入力が求められる
- 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
- ダブルクリックで現在の鍵一覧を確認できる
✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
CODE_BLOCK_32
→ パスフレーズの入力なしでログインが可能になる。
鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
✅ 4. 複数の鍵にも対応可能
CODE_BLOCK_33
→ 複数サーバの鍵を同時に管理できる
✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
CODE_BLOCK_34
📝 補足:よくあるQ&A
| 質問 | 回答 |
|---|---|
| 鍵を入れたのに接続できない | セッションの「Auth」で .ppk を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 .ppk を渡せる |
これで、Pageantを活用したパスフレーズ付き鍵の快適運用が一気に現実になります!
Python関連のインストールと環境作成
デフォルトでPython3が入っています。
CODE_BLOCK_35
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
pipの確認とインストール
まず pip が入っているか確認:
CODE_BLOCK_36
CODE_BLOCK_37
CODE_BLOCK_38
pipアップグレード(任意)
CODE_BLOCK_39
仮想環境での開発
仮想環境での開発: python3 -m venv venv で source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。 理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
CODE_BLOCK_40
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。 簡単に言えば:
🔒 エラーメッセージの意味 このPython環境は、OS(apt)によって管理されているため、 pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
✅ 安全な解決策(推奨)
✅ 方法①:仮想環境(venv)を使う ← 安定
CODE_BLOCK_41
こうすることで、システム全体には影響せずに自由にpipが使えます。
✅ 方法②:—break-system-packages を使う ← 応急処置
CODE_BLOCK_42
これは 自己責任で強行突破する方法です。
ただし /usr/lib や /usr/bin には触らないので --user なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
✅ pipx という選択肢も
CODE_BLOCK_43
→ pipx は Python ツール用の「安全な隔離ランチャー」です。
✨ 結論
- 堅実派: venv を使うのが一番安全(おすすめ)
- 簡単に済ませたい派: —break-system-packages を付けて実行でもOK(短期使用なら)
- 将来を見据える派: pipx でモダンに管理するのも◎
仮想環境用モジュールをインストール
CODE_BLOCK_44
その後
CODE_BLOCK_45
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には venv という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、プロジェクトごとにパッケージを分離して管理できる軽量な専用エリアです。
- 他のPythonプロジェクトと干渉しない
- OS全体には影響しない
- 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける仕組みです。
言い換えれば、
🥡 「開発者専用のお弁当箱」
安心してPythonスクリプトを試せる、小さな秘密基地のような存在ともいえます。
🛠️ よく使う3ステップだけ覚えればOK
CODE_BLOCK_46
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
✅ なぜ使うの?
- 古いコードに合わせて古いバージョンのライブラリを使いたいとき
- 複数のプロジェクトで異なる依存関係があるとき
- システム全体を汚したくないとき(安全!)
など、Python開発者にはほぼ必須の道具です。
Sambaにも苦しむ
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
次は、samba ですね。
さっきインストールはしました。
CODE_BLOCK_47
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} 了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。 {{< /chat >}}
🔧 Samba 設定ステップ(超基本)
① 共有フォルダを作成
CODE_BLOCK_48
※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
CODE_BLOCK_49
CODE_BLOCK_50
② Samba 設定ファイルを編集
CODE_BLOCK_51
ファイルの末尾に以下を追記してください:
CODE_BLOCK_52
guest ok = yesは「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
③ Samba 再起動
CODE_BLOCK_53
④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
⑤ Windows などからアクセス
エクスプローラーなどで:
CODE_BLOCK_54
でアクセス可能なはずです。
アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
CODE_BLOCK_55
smb.conf の guest ok = no にして valid users = sambauser を追加すれば制限できます。
何をやっても samba に繋がらない
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
パスワードはあってるけどログインできないですね。
前のサーバの情報を削除しないとダメ?
もしくは、smb.conf の設定が必要だった気がします。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです: {{< /chat >}}
1. none ユーザーを Sambaユーザーとして登録済みか?
CODE_BLOCK_56
2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
CODE_BLOCK_57
3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
CODE_BLOCK_58
4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
- 「資格情報マネージャー」を開く
- 「Windows 資格情報」タブを選択
- 192.168.0.1 に関する項目があれば削除
- 再接続
5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
CODE_BLOCK_59
もし有効なら:
CODE_BLOCK_60
6. Samba 再起動とログ確認
CODE_BLOCK_61
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
CODE_BLOCK_62
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
Sambaのリズムで、底なし沼にダイブですね。
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
ほんとそれです!
最初は陽気なリズムに誘われて――
🥁「タン・タン・ターン!」
🌴「Sambaは自由で楽しい!」
…と思ったら、
\ズボッ/
沼でした。しかも底なし。
🕺 Sambaあるあるリズム
- guest ok = yes ♪
- read only = no ♪
- map to guest = Bad User が裏切る〜♪
そしてWindowsが、
🎭「資格情報を入力してください」→「アクセス拒否!」
でも、このセッションを通じて
あなたはもう「Sambaダンサー」から
Sambaマスターになりました。
次は force user でも valid users でも homes でも、
来るなら来いって感じですね。
(ただし心が沈む前に休憩もお忘れなく🫖)
👣「足元を確認しながらリズムを刻む」
それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。
あなたの踊り、見届けます🪩
{{< /chat >}}
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
sambaに繋がらないほんとの原因
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
こんな情報があったよ。
WindowsからLinux Samba共有にアクセスできない
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。
対処方法(Windows側の認証レベルを上げる)
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。
インストール完了後、PCの再起動を行ってください。
引用元、参考にさせていただいたサイト:
Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ
QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。
anzunote.com{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} おお、それはとても核心を突いた情報です!
まさに 「Windows側の認証レベルの低さ」 が、最近の Samba(特に smbd 4.11+ 以降)とぶつかってログイン失敗する原因の一つです。
✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を既定で無効化しています。
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。
🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。
レジストリエディタで以下を追加:
CODE_BLOCK_63
意味:
| 値 | 内容 |
|---|---|
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
|---|---|
Network security: LAN Manager authentication level | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
SMB1 | なるべく無効化(SMB2 or 3推奨) |
📁 具体例:.regファイル内容(クリック1つで設定)
CODE_BLOCK_64
これを .reg ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
🔄 再起動必須!
変更後は、Windowsを再起動しないと効果が出ないのでご注意を。
🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が LmCompatibilityLevel=3 以上に設定されていれば、
guest ok = no + valid users = none 構成でもうまく行く可能性が上がります。
もし希望があれば .reg ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} sambaのリズムがあってなかったんですよ。
samba の門番:
「入りたいなら、踊ってごらんなさい」
Windowの門下生2:
「♬♪♬♪」
samba の門番:
「ダメですね(アクセス拒否)」
Windowの門下生3:
「♬♪♬♪♬♪」
samba の門番:
「あなたは宜しい、お入りなさい」
Windowの門下生2:
「???」
「私の何が悪いのでしょうか?」
samba の門番:
「次の方どうぞ」
2拍子じゃなくて、3拍子だったということです。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} ……これはまさに、**“Samba 認証オペラ - 3拍子の門”**🎭✨
🕺samba の門番 「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️門下生2(LmCompatibilityLevel = 2) 「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️門番 「…その古いステップ、見飽きました」
🧍♀️門下生3(LmCompatibilityLevel = 3) 「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️門番(即判定) 「認証OK!ようこそ、/home/smb へ!」
🧍♂️門下生2(涙目) 「僕も…NTLMv2だけで踊れるようになりたい…」
この寓話、**設定ミスというより“文化の違い”**みたいなものですね。
- Samba:「モダンなリズムで来てください」
- Windows:「昔ながらの2拍子もイケるんですが?」
- ネットワーク:「リズムが合わないと拒否されます」
🎼 まとめ:設定は踊りのリズム
| 要素 | 踊りの例え |
|---|---|
LmCompatibilityLevel | Windows側のダンスステップ |
ntlm auth | Sambaの許容するステップ範囲 |
client plaintext auth | 「素足で踊っていい?」の確認 |
guest ok | 「入場無料」かどうか |
この一連のやり取り、ほんとにブログ記事になりますよ… タイトル案:「Sambaの門をくぐるには、3拍子を刻め」 あるいは…
「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} こんなの記事にしても仕方ないでしょ… {{< /chat >}}
※結局記事にしました
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「LmCompatibilityLevel = 3」だった、みたいな。
でもね……こういう“泥のような知見”こそ、未来の誰かが 救われる記事 になったりするんです。
🌍 世の中には、こんな人がいます:
- 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
- 「Sambaログに
user [none]って出るけど、意味わからん」 - 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
- 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり 「今のあなたと同じ地雷を踏んだ人」 が、検索してさまようんです。 そんな時、ヒットするのが「こんな記事」だったりするんですよ。
💡 “役立たなさそう”な記事が、最も検索されるジャンル:
- Sambaのログイン失敗とその原因
- Windowsのレジストリの意味
- なぜ
/home/noneに繋がるのか guest okの挙動の違い- NTLMv2の設定ってどこで変えるの?
→ これら、公式ドキュメントに全部は載ってないんです。 → だからこそ、リアルな「解決までの足取り」が価値になるんです。
✍️ もし記事化するなら、こんな構成:
📝 タイトル案
SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
🧩 構成案
-
症状:Samba共有にアクセスできない(ログインできない)
user [none]になってしまうguest ok = noでアクセス不可になる
-
原因調査:ログ確認と設定見直し
log.smbdに「authentication for user [none]」など/home/noneに接続されてる?- smb.conf の
guest okの影響
-
解決方法:Windows側のレジストリ設定
LmCompatibilityLevel = 2 → 3に変更- 再起動後、ログイン成功
-
学びと結論
- NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
guest okの有無で動作が大きく変わる- Sambaログは意外とヒントが詰まってる
結論:記事にする価値、思ってるよりあります。 あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。 「今は疲れた…」なら、このやり取りだけ保存しておけばいい。 落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
必要なら「この記事テンプレ」だけでも残します。 書く気になったらいつでも呼んでください。
{{< /chat >}}
samba にユーザーを追加する
smb用の専用グループ(例:smbgroup)を作って設定する
CODE_BLOCK_65 これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
smb.conf 側の確認
CODE_BLOCK_66 ※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
Samba の再起動
CODE_BLOCK_67
zshの設定
Zshをインストールする手順(Debian系)
CODE_BLOCK_68
CODE_BLOCK_69
ログインシェルを zsh に変更(例: none ユーザー)
CODE_BLOCK_70
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
CODE_BLOCK_71
CODE_BLOCK_72
Oh My Zsh をインストール
CODE_BLOCK_73
CODE_BLOCK_74
最小構成の .zshrc
CODE_BLOCK_75
vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
CODE_BLOCK_76
+clipboard —– クリップボードとの連携に対応
-clipboard —– クリップボードとの連携に未対応
-
vim --version | grep clipboardの結果 →-clipboard -
つまり:
- マウスでコピーした内容を Vim に貼り付けられない
- Vim からコピーした内容を他アプリにペーストもできない
-
-- ビジュアル --の混乱とは別問題
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
CODE_BLOCK_77
もしくは軽量版で clipboard 対応が必要なら:
CODE_BLOCK_78
インストール後に再確認:
CODE_BLOCK_79
→ +clipboard と表示されれば成功です。
なぜ -clipboard がデフォルト?
Debianのvim-tinyやvim.basicはサイズ最小化のため、GUI連携やクリップボード機能を省いています。
vim-gtk3などのパッケージがフル機能版です。
- Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
- Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
"+yや"+pでクリップボードを直接操作
CODE_BLOCK_80
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
日本語入力
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} 今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅? {{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
おぉ…懐かしき kinput2 + canna!
時代の移り変わりをひしひしと感じる話題ですね……。
🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
|---|---|
kinput2 | X11 用のフロントエンド |
canna / wnn | 変換エンジン |
xmodmap | キーバインド設定 |
完全にX環境前提 で、今で言うとレトロPCと同じくらいのノスタルジーです。
{{< /chat >}}
🆕【現在】日本語入力の主流(2020年代〜)
🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
|---|---|
| ibus (Intelligent Input Bus) | モダンなインプットフレームワーク |
| fcitx5 | 高機能で軽量な代替IMEフレームワーク |
| mozc | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
CODE_BLOCK_81
- fcitx5 は日本語+他言語切替も快適
fcitx5-configtoolでGUI設定可能.xprofileや.xinitrcに以下を追記することで起動時に有効化:
CODE_BLOCK_82
CLI特化 or 最小構成サーバ用途
- ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
ibus/fcitxを入れても SSH や tty コンソールでは使えない- どうしてもターミナルで使いたいなら:emacs + mozc.el などのエディタ内IMが頼り
🎴 kinput2 + canna は…?
完全に化石化しました。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、kinput2 -canna 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
💬 余談:なぜ「fcitx5 + mozc」が人気?
- IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
- 日本語変換精度が高い(Google日本語入力ベース)
- GTK, Qt 両対応でWaylandにも対応し始めてる
🔚 結論
-
kinput2 + cannaは現役引退。 -
2025年の今、Linuxで日本語入力したければ:
fcitx5 + mozcが最も安定&高性能- GUI環境ありき、ターミナルでは非対応が基本
- VimやEmacs内部IMEやWSL環境も選択肢
.xinitrc の作成と設定 ~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
CODE_BLOCK_83
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける CODE_BLOCK_84 ✅ GUIで確認:fcitx5が動いてるか? 起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
CODE_BLOCK_85
✨補足:常に有効にしたい場合(デスクトップ環境ごと) GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
CODE_BLOCK_86
まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。 \345\205\254\351\226\213’ ”
原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
CODE_BLOCK_7
たとえばこのように出ていればNGです:
CODE_BLOCK_8
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
CODE_BLOCK_9
日本語
CODE_BLOCK_10
設定反映
CODE_BLOCK_11
英語名に戻したい場合(任意)
CODE_BLOCK_12
英語のほうがスクリプト書く時に楽な面もあり
CODE_BLOCK_13
LANGの確認と変更方法
CODE_BLOCK_14
CODE_BLOCK_15
補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、大正解です。🎯「PuTTYの設定」が文字化けの元凶である可能性が非常に高いです。
PuTTYは軽量で便利ですが、絵文字や多言語(特にCJK+絵文字)への対応が弱いことが知られています。
🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
|---|---|
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
✅ ① 文字コードを UTF-8 に変更
- PuTTY起動
- 左メニュー「Window → Translation」を選択
Remote character setをUTF-8に設定
✅ ② フォントを Unicode 対応フォントに変更
-
左メニュー「Window → Appearance → Font settings → Change」
-
おすすめフォント:
MS GothicMS UI GothicNoto Sans Mono CJK JPMigu 1MDejaVu Sans Mono(一部対応)- 絵文字表示は難しいが、日本語文字化けは大幅に軽減
✅ ③ ターミナルアプリを切り替える(推奨)
💡PuTTYでは絵文字表示はほぼ無理。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
|---|---|
| Windows Terminal(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| KiTTY | PuTTYの派生だが根本的には改善されないことも |
| VSCode + Remote SSH | GUIベースでSSH可能、表示も安心 |
| MobaXterm | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
エラー内容(和訳)
CODE_BLOCK_16 →「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
CODE_BLOCK_17
パスワード認証を許可 CODE_BLOCK_18 ⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
CODE_BLOCK_19
CODE_BLOCK_20
SSH再起動 CODE_BLOCK_21
鍵ペアの生成
CODE_BLOCK_22
ファイルの パーミッション(デフォルト) CODE_BLOCK_23
CODE_BLOCK_24
繋がらない理由
基本ですが、ログを確認。
CODE_BLOCK_25
CODE_BLOCK_26
エラーログ
CODE_BLOCK_27
原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
CODE_BLOCK_28 8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
CODE_BLOCK_29
その後、sshdを再起動:
CODE_BLOCK_30
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
- PuTTYgen を起動
- 「Parameters」で以下を選択:
- Type of key to generate → RSA
- 2048 以上のビット数を指定(例:4096)
- 「Generate」を押す
- .ppk を保存(PuTTY用)
- 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
- その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
Download PuTTY: latest release (0.83)
![]()
タイトル未取得
説明なし
www.chiark.greenend.org.uk
🔍 解説:なぜ ssh-rsa は非推奨なのか?
ssh-rsaは SHA-1 を署名アルゴリズムに使っており、 SHA-1 は既に衝突(Collision)が実証されているため、暗号的に危険です。- OpenSSH 8.8 以降、デフォルトで無効化されました(2021年リリース)。
✅ 今の状態の是非
| 状態 | 説明 |
|---|---|
✅ 一時的に +ssh-rsa を許可 | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ 長期的には非推奨 | セキュリティの観点では、RSA鍵でも rsa-sha2-256 / rsa-sha2-512 に移行が推奨されます。 |
| ✅ 今後の方針 | 新しく ed25519 や rsa-sha2-256 鍵で鍵ペアを生成して更新していくのがベター。 |
🛠️ 長期的にやっておくと良いこと
- ✅
PuTTYgenでed25519かRSA(withrsa-sha2-256) 鍵を作り直す - ✅
authorized_keysをそれに差し替える - ✅
+ssh-rsaの設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
|---|---|---|
RSA(rsa-sha2-256/512) | ✅ 対応済 | ただし、デフォルトでは ssh-rsa に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク 最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
🚨 注意点
SSH は「設定変更してすぐに接続確認しないとハマる」系の代表格なので、 新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストするのが鉄則です。
もし fail2ban や ufw を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。 パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。 セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
🔧 Pageantの具体的な使い方
✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で .ppk 形式の鍵を作成し、パスフレーズ付きで保存しておく。
✅ 2. Pageantを起動して鍵を読み込む
CODE_BLOCK_31
- 初回のみ、パスフレーズの入力が求められる
- 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
- ダブルクリックで現在の鍵一覧を確認できる
✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
CODE_BLOCK_32
→ パスフレーズの入力なしでログインが可能になる。
鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
✅ 4. 複数の鍵にも対応可能
CODE_BLOCK_33
→ 複数サーバの鍵を同時に管理できる
✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
CODE_BLOCK_34
📝 補足:よくあるQ&A
| 質問 | 回答 |
|---|---|
| 鍵を入れたのに接続できない | セッションの「Auth」で .ppk を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 .ppk を渡せる |
これで、Pageantを活用したパスフレーズ付き鍵の快適運用が一気に現実になります!
Python関連のインストールと環境作成
デフォルトでPython3が入っています。
CODE_BLOCK_35
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
pipの確認とインストール
まず pip が入っているか確認:
CODE_BLOCK_36
CODE_BLOCK_37
CODE_BLOCK_38
pipアップグレード(任意)
CODE_BLOCK_39
仮想環境での開発
仮想環境での開発: python3 -m venv venv で source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。 理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
CODE_BLOCK_40
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。 簡単に言えば:
🔒 エラーメッセージの意味 このPython環境は、OS(apt)によって管理されているため、 pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
✅ 安全な解決策(推奨)
✅ 方法①:仮想環境(venv)を使う ← 安定
CODE_BLOCK_41
こうすることで、システム全体には影響せずに自由にpipが使えます。
✅ 方法②:—break-system-packages を使う ← 応急処置
CODE_BLOCK_42
これは 自己責任で強行突破する方法です。
ただし /usr/lib や /usr/bin には触らないので --user なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
✅ pipx という選択肢も
CODE_BLOCK_43
→ pipx は Python ツール用の「安全な隔離ランチャー」です。
✨ 結論
- 堅実派: venv を使うのが一番安全(おすすめ)
- 簡単に済ませたい派: —break-system-packages を付けて実行でもOK(短期使用なら)
- 将来を見据える派: pipx でモダンに管理するのも◎
仮想環境用モジュールをインストール
CODE_BLOCK_44
その後
CODE_BLOCK_45
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には venv という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、プロジェクトごとにパッケージを分離して管理できる軽量な専用エリアです。
- 他のPythonプロジェクトと干渉しない
- OS全体には影響しない
- 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける仕組みです。
言い換えれば、
🥡 「開発者専用のお弁当箱」
安心してPythonスクリプトを試せる、小さな秘密基地のような存在ともいえます。
🛠️ よく使う3ステップだけ覚えればOK
CODE_BLOCK_46
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
✅ なぜ使うの?
- 古いコードに合わせて古いバージョンのライブラリを使いたいとき
- 複数のプロジェクトで異なる依存関係があるとき
- システム全体を汚したくないとき(安全!)
など、Python開発者にはほぼ必須の道具です。
Sambaにも苦しむ
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
次は、samba ですね。
さっきインストールはしました。
CODE_BLOCK_47
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} 了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。 {{< /chat >}}
🔧 Samba 設定ステップ(超基本)
① 共有フォルダを作成
CODE_BLOCK_48
※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
CODE_BLOCK_49
CODE_BLOCK_50
② Samba 設定ファイルを編集
CODE_BLOCK_51
ファイルの末尾に以下を追記してください:
CODE_BLOCK_52
guest ok = yesは「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
③ Samba 再起動
CODE_BLOCK_53
④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
⑤ Windows などからアクセス
エクスプローラーなどで:
CODE_BLOCK_54
でアクセス可能なはずです。
アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
CODE_BLOCK_55
smb.conf の guest ok = no にして valid users = sambauser を追加すれば制限できます。
何をやっても samba に繋がらない
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
パスワードはあってるけどログインできないですね。
前のサーバの情報を削除しないとダメ?
もしくは、smb.conf の設定が必要だった気がします。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです: {{< /chat >}}
1. none ユーザーを Sambaユーザーとして登録済みか?
CODE_BLOCK_56
2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
CODE_BLOCK_57
3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
CODE_BLOCK_58
4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
- 「資格情報マネージャー」を開く
- 「Windows 資格情報」タブを選択
- 192.168.0.1 に関する項目があれば削除
- 再接続
5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
CODE_BLOCK_59
もし有効なら:
CODE_BLOCK_60
6. Samba 再起動とログ確認
CODE_BLOCK_61
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
CODE_BLOCK_62
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
Sambaのリズムで、底なし沼にダイブですね。
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
ほんとそれです!
最初は陽気なリズムに誘われて――
🥁「タン・タン・ターン!」
🌴「Sambaは自由で楽しい!」
…と思ったら、
\ズボッ/
沼でした。しかも底なし。
🕺 Sambaあるあるリズム
- guest ok = yes ♪
- read only = no ♪
- map to guest = Bad User が裏切る〜♪
そしてWindowsが、
🎭「資格情報を入力してください」→「アクセス拒否!」
でも、このセッションを通じて
あなたはもう「Sambaダンサー」から
Sambaマスターになりました。
次は force user でも valid users でも homes でも、
来るなら来いって感じですね。
(ただし心が沈む前に休憩もお忘れなく🫖)
👣「足元を確認しながらリズムを刻む」
それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。
あなたの踊り、見届けます🪩
{{< /chat >}}
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
sambaに繋がらないほんとの原因
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
こんな情報があったよ。
WindowsからLinux Samba共有にアクセスできない
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。
対処方法(Windows側の認証レベルを上げる)
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。
インストール完了後、PCの再起動を行ってください。
引用元、参考にさせていただいたサイト:
Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ
QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。
anzunote.com{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} おお、それはとても核心を突いた情報です!
まさに 「Windows側の認証レベルの低さ」 が、最近の Samba(特に smbd 4.11+ 以降)とぶつかってログイン失敗する原因の一つです。
✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を既定で無効化しています。
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。
🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。
レジストリエディタで以下を追加:
CODE_BLOCK_63
意味:
| 値 | 内容 |
|---|---|
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
|---|---|
Network security: LAN Manager authentication level | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
SMB1 | なるべく無効化(SMB2 or 3推奨) |
📁 具体例:.regファイル内容(クリック1つで設定)
CODE_BLOCK_64
これを .reg ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
🔄 再起動必須!
変更後は、Windowsを再起動しないと効果が出ないのでご注意を。
🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が LmCompatibilityLevel=3 以上に設定されていれば、
guest ok = no + valid users = none 構成でもうまく行く可能性が上がります。
もし希望があれば .reg ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} sambaのリズムがあってなかったんですよ。
samba の門番:
「入りたいなら、踊ってごらんなさい」
Windowの門下生2:
「♬♪♬♪」
samba の門番:
「ダメですね(アクセス拒否)」
Windowの門下生3:
「♬♪♬♪♬♪」
samba の門番:
「あなたは宜しい、お入りなさい」
Windowの門下生2:
「???」
「私の何が悪いのでしょうか?」
samba の門番:
「次の方どうぞ」
2拍子じゃなくて、3拍子だったということです。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} ……これはまさに、**“Samba 認証オペラ - 3拍子の門”**🎭✨
🕺samba の門番 「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️門下生2(LmCompatibilityLevel = 2) 「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️門番 「…その古いステップ、見飽きました」
🧍♀️門下生3(LmCompatibilityLevel = 3) 「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️門番(即判定) 「認証OK!ようこそ、/home/smb へ!」
🧍♂️門下生2(涙目) 「僕も…NTLMv2だけで踊れるようになりたい…」
この寓話、**設定ミスというより“文化の違い”**みたいなものですね。
- Samba:「モダンなリズムで来てください」
- Windows:「昔ながらの2拍子もイケるんですが?」
- ネットワーク:「リズムが合わないと拒否されます」
🎼 まとめ:設定は踊りのリズム
| 要素 | 踊りの例え |
|---|---|
LmCompatibilityLevel | Windows側のダンスステップ |
ntlm auth | Sambaの許容するステップ範囲 |
client plaintext auth | 「素足で踊っていい?」の確認 |
guest ok | 「入場無料」かどうか |
この一連のやり取り、ほんとにブログ記事になりますよ… タイトル案:「Sambaの門をくぐるには、3拍子を刻め」 あるいは…
「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} こんなの記事にしても仕方ないでしょ… {{< /chat >}}
※結局記事にしました
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「LmCompatibilityLevel = 3」だった、みたいな。
でもね……こういう“泥のような知見”こそ、未来の誰かが 救われる記事 になったりするんです。
🌍 世の中には、こんな人がいます:
- 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
- 「Sambaログに
user [none]って出るけど、意味わからん」 - 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
- 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり 「今のあなたと同じ地雷を踏んだ人」 が、検索してさまようんです。 そんな時、ヒットするのが「こんな記事」だったりするんですよ。
💡 “役立たなさそう”な記事が、最も検索されるジャンル:
- Sambaのログイン失敗とその原因
- Windowsのレジストリの意味
- なぜ
/home/noneに繋がるのか guest okの挙動の違い- NTLMv2の設定ってどこで変えるの?
→ これら、公式ドキュメントに全部は載ってないんです。 → だからこそ、リアルな「解決までの足取り」が価値になるんです。
✍️ もし記事化するなら、こんな構成:
📝 タイトル案
SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
🧩 構成案
-
症状:Samba共有にアクセスできない(ログインできない)
user [none]になってしまうguest ok = noでアクセス不可になる
-
原因調査:ログ確認と設定見直し
log.smbdに「authentication for user [none]」など/home/noneに接続されてる?- smb.conf の
guest okの影響
-
解決方法:Windows側のレジストリ設定
LmCompatibilityLevel = 2 → 3に変更- 再起動後、ログイン成功
-
学びと結論
- NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
guest okの有無で動作が大きく変わる- Sambaログは意外とヒントが詰まってる
結論:記事にする価値、思ってるよりあります。 あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。 「今は疲れた…」なら、このやり取りだけ保存しておけばいい。 落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
必要なら「この記事テンプレ」だけでも残します。 書く気になったらいつでも呼んでください。
{{< /chat >}}
samba にユーザーを追加する
smb用の専用グループ(例:smbgroup)を作って設定する
CODE_BLOCK_65 これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
smb.conf 側の確認
CODE_BLOCK_66 ※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
Samba の再起動
CODE_BLOCK_67
zshの設定
Zshをインストールする手順(Debian系)
CODE_BLOCK_68
CODE_BLOCK_69
ログインシェルを zsh に変更(例: none ユーザー)
CODE_BLOCK_70
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
CODE_BLOCK_71
CODE_BLOCK_72
Oh My Zsh をインストール
CODE_BLOCK_73
CODE_BLOCK_74
最小構成の .zshrc
CODE_BLOCK_75
vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
CODE_BLOCK_76
+clipboard —– クリップボードとの連携に対応
-clipboard —– クリップボードとの連携に未対応
-
vim --version | grep clipboardの結果 →-clipboard -
つまり:
- マウスでコピーした内容を Vim に貼り付けられない
- Vim からコピーした内容を他アプリにペーストもできない
-
-- ビジュアル --の混乱とは別問題
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
CODE_BLOCK_77
もしくは軽量版で clipboard 対応が必要なら:
CODE_BLOCK_78
インストール後に再確認:
CODE_BLOCK_79
→ +clipboard と表示されれば成功です。
なぜ -clipboard がデフォルト?
Debianのvim-tinyやvim.basicはサイズ最小化のため、GUI連携やクリップボード機能を省いています。
vim-gtk3などのパッケージがフル機能版です。
- Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
- Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
"+yや"+pでクリップボードを直接操作
CODE_BLOCK_80
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
日本語入力
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} 今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅? {{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
おぉ…懐かしき kinput2 + canna!
時代の移り変わりをひしひしと感じる話題ですね……。
🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
|---|---|
kinput2 | X11 用のフロントエンド |
canna / wnn | 変換エンジン |
xmodmap | キーバインド設定 |
完全にX環境前提 で、今で言うとレトロPCと同じくらいのノスタルジーです。
{{< /chat >}}
🆕【現在】日本語入力の主流(2020年代〜)
🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
|---|---|
| ibus (Intelligent Input Bus) | モダンなインプットフレームワーク |
| fcitx5 | 高機能で軽量な代替IMEフレームワーク |
| mozc | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
CODE_BLOCK_81
- fcitx5 は日本語+他言語切替も快適
fcitx5-configtoolでGUI設定可能.xprofileや.xinitrcに以下を追記することで起動時に有効化:
CODE_BLOCK_82
CLI特化 or 最小構成サーバ用途
- ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
ibus/fcitxを入れても SSH や tty コンソールでは使えない- どうしてもターミナルで使いたいなら:emacs + mozc.el などのエディタ内IMが頼り
🎴 kinput2 + canna は…?
完全に化石化しました。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、kinput2 -canna 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
💬 余談:なぜ「fcitx5 + mozc」が人気?
- IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
- 日本語変換精度が高い(Google日本語入力ベース)
- GTK, Qt 両対応でWaylandにも対応し始めてる
🔚 結論
-
kinput2 + cannaは現役引退。 -
2025年の今、Linuxで日本語入力したければ:
fcitx5 + mozcが最も安定&高性能- GUI環境ありき、ターミナルでは非対応が基本
- VimやEmacs内部IMEやWSL環境も選択肢
.xinitrc の作成と設定 ~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
CODE_BLOCK_83
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける CODE_BLOCK_84 ✅ GUIで確認:fcitx5が動いてるか? 起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
CODE_BLOCK_85
✨補足:常に有効にしたい場合(デスクトップ環境ごと) GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
CODE_BLOCK_86
まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。 \347\224\273\345\203\217’ ”
原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
CODE_BLOCK_7
たとえばこのように出ていればNGです:
CODE_BLOCK_8
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
CODE_BLOCK_9
日本語
CODE_BLOCK_10
設定反映
CODE_BLOCK_11
英語名に戻したい場合(任意)
CODE_BLOCK_12
英語のほうがスクリプト書く時に楽な面もあり
CODE_BLOCK_13
LANGの確認と変更方法
CODE_BLOCK_14
CODE_BLOCK_15
補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、大正解です。🎯「PuTTYの設定」が文字化けの元凶である可能性が非常に高いです。
PuTTYは軽量で便利ですが、絵文字や多言語(特にCJK+絵文字)への対応が弱いことが知られています。
🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
|---|---|
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
✅ ① 文字コードを UTF-8 に変更
- PuTTY起動
- 左メニュー「Window → Translation」を選択
Remote character setをUTF-8に設定
✅ ② フォントを Unicode 対応フォントに変更
-
左メニュー「Window → Appearance → Font settings → Change」
-
おすすめフォント:
MS GothicMS UI GothicNoto Sans Mono CJK JPMigu 1MDejaVu Sans Mono(一部対応)- 絵文字表示は難しいが、日本語文字化けは大幅に軽減
✅ ③ ターミナルアプリを切り替える(推奨)
💡PuTTYでは絵文字表示はほぼ無理。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
|---|---|
| Windows Terminal(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| KiTTY | PuTTYの派生だが根本的には改善されないことも |
| VSCode + Remote SSH | GUIベースでSSH可能、表示も安心 |
| MobaXterm | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
エラー内容(和訳)
CODE_BLOCK_16 →「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
CODE_BLOCK_17
パスワード認証を許可 CODE_BLOCK_18 ⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
CODE_BLOCK_19
CODE_BLOCK_20
SSH再起動 CODE_BLOCK_21
鍵ペアの生成
CODE_BLOCK_22
ファイルの パーミッション(デフォルト) CODE_BLOCK_23
CODE_BLOCK_24
繋がらない理由
基本ですが、ログを確認。
CODE_BLOCK_25
CODE_BLOCK_26
エラーログ
CODE_BLOCK_27
原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
CODE_BLOCK_28 8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
CODE_BLOCK_29
その後、sshdを再起動:
CODE_BLOCK_30
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
- PuTTYgen を起動
- 「Parameters」で以下を選択:
- Type of key to generate → RSA
- 2048 以上のビット数を指定(例:4096)
- 「Generate」を押す
- .ppk を保存(PuTTY用)
- 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
- その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
Download PuTTY: latest release (0.83)
![]()
タイトル未取得
説明なし
www.chiark.greenend.org.uk
🔍 解説:なぜ ssh-rsa は非推奨なのか?
ssh-rsaは SHA-1 を署名アルゴリズムに使っており、 SHA-1 は既に衝突(Collision)が実証されているため、暗号的に危険です。- OpenSSH 8.8 以降、デフォルトで無効化されました(2021年リリース)。
✅ 今の状態の是非
| 状態 | 説明 |
|---|---|
✅ 一時的に +ssh-rsa を許可 | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ 長期的には非推奨 | セキュリティの観点では、RSA鍵でも rsa-sha2-256 / rsa-sha2-512 に移行が推奨されます。 |
| ✅ 今後の方針 | 新しく ed25519 や rsa-sha2-256 鍵で鍵ペアを生成して更新していくのがベター。 |
🛠️ 長期的にやっておくと良いこと
- ✅
PuTTYgenでed25519かRSA(withrsa-sha2-256) 鍵を作り直す - ✅
authorized_keysをそれに差し替える - ✅
+ssh-rsaの設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
|---|---|---|
RSA(rsa-sha2-256/512) | ✅ 対応済 | ただし、デフォルトでは ssh-rsa に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク 最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
🚨 注意点
SSH は「設定変更してすぐに接続確認しないとハマる」系の代表格なので、 新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストするのが鉄則です。
もし fail2ban や ufw を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。 パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。 セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
🔧 Pageantの具体的な使い方
✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で .ppk 形式の鍵を作成し、パスフレーズ付きで保存しておく。
✅ 2. Pageantを起動して鍵を読み込む
CODE_BLOCK_31
- 初回のみ、パスフレーズの入力が求められる
- 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
- ダブルクリックで現在の鍵一覧を確認できる
✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
CODE_BLOCK_32
→ パスフレーズの入力なしでログインが可能になる。
鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
✅ 4. 複数の鍵にも対応可能
CODE_BLOCK_33
→ 複数サーバの鍵を同時に管理できる
✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
CODE_BLOCK_34
📝 補足:よくあるQ&A
| 質問 | 回答 |
|---|---|
| 鍵を入れたのに接続できない | セッションの「Auth」で .ppk を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 .ppk を渡せる |
これで、Pageantを活用したパスフレーズ付き鍵の快適運用が一気に現実になります!
Python関連のインストールと環境作成
デフォルトでPython3が入っています。
CODE_BLOCK_35
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
pipの確認とインストール
まず pip が入っているか確認:
CODE_BLOCK_36
CODE_BLOCK_37
CODE_BLOCK_38
pipアップグレード(任意)
CODE_BLOCK_39
仮想環境での開発
仮想環境での開発: python3 -m venv venv で source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。 理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
CODE_BLOCK_40
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。 簡単に言えば:
🔒 エラーメッセージの意味 このPython環境は、OS(apt)によって管理されているため、 pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
✅ 安全な解決策(推奨)
✅ 方法①:仮想環境(venv)を使う ← 安定
CODE_BLOCK_41
こうすることで、システム全体には影響せずに自由にpipが使えます。
✅ 方法②:—break-system-packages を使う ← 応急処置
CODE_BLOCK_42
これは 自己責任で強行突破する方法です。
ただし /usr/lib や /usr/bin には触らないので --user なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
✅ pipx という選択肢も
CODE_BLOCK_43
→ pipx は Python ツール用の「安全な隔離ランチャー」です。
✨ 結論
- 堅実派: venv を使うのが一番安全(おすすめ)
- 簡単に済ませたい派: —break-system-packages を付けて実行でもOK(短期使用なら)
- 将来を見据える派: pipx でモダンに管理するのも◎
仮想環境用モジュールをインストール
CODE_BLOCK_44
その後
CODE_BLOCK_45
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には venv という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、プロジェクトごとにパッケージを分離して管理できる軽量な専用エリアです。
- 他のPythonプロジェクトと干渉しない
- OS全体には影響しない
- 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける仕組みです。
言い換えれば、
🥡 「開発者専用のお弁当箱」
安心してPythonスクリプトを試せる、小さな秘密基地のような存在ともいえます。
🛠️ よく使う3ステップだけ覚えればOK
CODE_BLOCK_46
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
✅ なぜ使うの?
- 古いコードに合わせて古いバージョンのライブラリを使いたいとき
- 複数のプロジェクトで異なる依存関係があるとき
- システム全体を汚したくないとき(安全!)
など、Python開発者にはほぼ必須の道具です。
Sambaにも苦しむ
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
次は、samba ですね。
さっきインストールはしました。
CODE_BLOCK_47
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} 了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。 {{< /chat >}}
🔧 Samba 設定ステップ(超基本)
① 共有フォルダを作成
CODE_BLOCK_48
※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
CODE_BLOCK_49
CODE_BLOCK_50
② Samba 設定ファイルを編集
CODE_BLOCK_51
ファイルの末尾に以下を追記してください:
CODE_BLOCK_52
guest ok = yesは「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
③ Samba 再起動
CODE_BLOCK_53
④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
⑤ Windows などからアクセス
エクスプローラーなどで:
CODE_BLOCK_54
でアクセス可能なはずです。
アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
CODE_BLOCK_55
smb.conf の guest ok = no にして valid users = sambauser を追加すれば制限できます。
何をやっても samba に繋がらない
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
パスワードはあってるけどログインできないですね。
前のサーバの情報を削除しないとダメ?
もしくは、smb.conf の設定が必要だった気がします。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです: {{< /chat >}}
1. none ユーザーを Sambaユーザーとして登録済みか?
CODE_BLOCK_56
2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
CODE_BLOCK_57
3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
CODE_BLOCK_58
4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
- 「資格情報マネージャー」を開く
- 「Windows 資格情報」タブを選択
- 192.168.0.1 に関する項目があれば削除
- 再接続
5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
CODE_BLOCK_59
もし有効なら:
CODE_BLOCK_60
6. Samba 再起動とログ確認
CODE_BLOCK_61
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
CODE_BLOCK_62
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
Sambaのリズムで、底なし沼にダイブですね。
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
ほんとそれです!
最初は陽気なリズムに誘われて――
🥁「タン・タン・ターン!」
🌴「Sambaは自由で楽しい!」
…と思ったら、
\ズボッ/
沼でした。しかも底なし。
🕺 Sambaあるあるリズム
- guest ok = yes ♪
- read only = no ♪
- map to guest = Bad User が裏切る〜♪
そしてWindowsが、
🎭「資格情報を入力してください」→「アクセス拒否!」
でも、このセッションを通じて
あなたはもう「Sambaダンサー」から
Sambaマスターになりました。
次は force user でも valid users でも homes でも、
来るなら来いって感じですね。
(ただし心が沈む前に休憩もお忘れなく🫖)
👣「足元を確認しながらリズムを刻む」
それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。
あなたの踊り、見届けます🪩
{{< /chat >}}
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
sambaに繋がらないほんとの原因
{{< chat speaker=“user” icon=“/images/avatar.webp” >}}
こんな情報があったよ。
WindowsからLinux Samba共有にアクセスできない
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。
対処方法(Windows側の認証レベルを上げる)
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。
インストール完了後、PCの再起動を行ってください。
引用元、参考にさせていただいたサイト:
Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ
QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。
anzunote.com{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} おお、それはとても核心を突いた情報です!
まさに 「Windows側の認証レベルの低さ」 が、最近の Samba(特に smbd 4.11+ 以降)とぶつかってログイン失敗する原因の一つです。
✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を既定で無効化しています。
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。
🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。
レジストリエディタで以下を追加:
CODE_BLOCK_63
意味:
| 値 | 内容 |
|---|---|
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
|---|---|
Network security: LAN Manager authentication level | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
SMB1 | なるべく無効化(SMB2 or 3推奨) |
📁 具体例:.regファイル内容(クリック1つで設定)
CODE_BLOCK_64
これを .reg ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
🔄 再起動必須!
変更後は、Windowsを再起動しないと効果が出ないのでご注意を。
🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が LmCompatibilityLevel=3 以上に設定されていれば、
guest ok = no + valid users = none 構成でもうまく行く可能性が上がります。
もし希望があれば .reg ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} sambaのリズムがあってなかったんですよ。
samba の門番:
「入りたいなら、踊ってごらんなさい」
Windowの門下生2:
「♬♪♬♪」
samba の門番:
「ダメですね(アクセス拒否)」
Windowの門下生3:
「♬♪♬♪♬♪」
samba の門番:
「あなたは宜しい、お入りなさい」
Windowの門下生2:
「???」
「私の何が悪いのでしょうか?」
samba の門番:
「次の方どうぞ」
2拍子じゃなくて、3拍子だったということです。
{{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}} ……これはまさに、**“Samba 認証オペラ - 3拍子の門”**🎭✨
🕺samba の門番 「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️門下生2(LmCompatibilityLevel = 2) 「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️門番 「…その古いステップ、見飽きました」
🧍♀️門下生3(LmCompatibilityLevel = 3) 「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️門番(即判定) 「認証OK!ようこそ、/home/smb へ!」
🧍♂️門下生2(涙目) 「僕も…NTLMv2だけで踊れるようになりたい…」
この寓話、**設定ミスというより“文化の違い”**みたいなものですね。
- Samba:「モダンなリズムで来てください」
- Windows:「昔ながらの2拍子もイケるんですが?」
- ネットワーク:「リズムが合わないと拒否されます」
🎼 まとめ:設定は踊りのリズム
| 要素 | 踊りの例え |
|---|---|
LmCompatibilityLevel | Windows側のダンスステップ |
ntlm auth | Sambaの許容するステップ範囲 |
client plaintext auth | 「素足で踊っていい?」の確認 |
guest ok | 「入場無料」かどうか |
この一連のやり取り、ほんとにブログ記事になりますよ… タイトル案:「Sambaの門をくぐるには、3拍子を刻め」 あるいは…
「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} こんなの記事にしても仕方ないでしょ… {{< /chat >}}
※結局記事にしました
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「LmCompatibilityLevel = 3」だった、みたいな。
でもね……こういう“泥のような知見”こそ、未来の誰かが 救われる記事 になったりするんです。
🌍 世の中には、こんな人がいます:
- 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
- 「Sambaログに
user [none]って出るけど、意味わからん」 - 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
- 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり 「今のあなたと同じ地雷を踏んだ人」 が、検索してさまようんです。 そんな時、ヒットするのが「こんな記事」だったりするんですよ。
💡 “役立たなさそう”な記事が、最も検索されるジャンル:
- Sambaのログイン失敗とその原因
- Windowsのレジストリの意味
- なぜ
/home/noneに繋がるのか guest okの挙動の違い- NTLMv2の設定ってどこで変えるの?
→ これら、公式ドキュメントに全部は載ってないんです。 → だからこそ、リアルな「解決までの足取り」が価値になるんです。
✍️ もし記事化するなら、こんな構成:
📝 タイトル案
SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
🧩 構成案
-
症状:Samba共有にアクセスできない(ログインできない)
user [none]になってしまうguest ok = noでアクセス不可になる
-
原因調査:ログ確認と設定見直し
log.smbdに「authentication for user [none]」など/home/noneに接続されてる?- smb.conf の
guest okの影響
-
解決方法:Windows側のレジストリ設定
LmCompatibilityLevel = 2 → 3に変更- 再起動後、ログイン成功
-
学びと結論
- NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
guest okの有無で動作が大きく変わる- Sambaログは意外とヒントが詰まってる
結論:記事にする価値、思ってるよりあります。 あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。 「今は疲れた…」なら、このやり取りだけ保存しておけばいい。 落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
必要なら「この記事テンプレ」だけでも残します。 書く気になったらいつでも呼んでください。
{{< /chat >}}
samba にユーザーを追加する
smb用の専用グループ(例:smbgroup)を作って設定する
CODE_BLOCK_65 これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
smb.conf 側の確認
CODE_BLOCK_66 ※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
Samba の再起動
CODE_BLOCK_67
zshの設定
Zshをインストールする手順(Debian系)
CODE_BLOCK_68
CODE_BLOCK_69
ログインシェルを zsh に変更(例: none ユーザー)
CODE_BLOCK_70
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
CODE_BLOCK_71
CODE_BLOCK_72
Oh My Zsh をインストール
CODE_BLOCK_73
CODE_BLOCK_74
最小構成の .zshrc
CODE_BLOCK_75
vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
CODE_BLOCK_76
+clipboard —– クリップボードとの連携に対応
-clipboard —– クリップボードとの連携に未対応
-
vim --version | grep clipboardの結果 →-clipboard -
つまり:
- マウスでコピーした内容を Vim に貼り付けられない
- Vim からコピーした内容を他アプリにペーストもできない
-
-- ビジュアル --の混乱とは別問題
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
CODE_BLOCK_77
もしくは軽量版で clipboard 対応が必要なら:
CODE_BLOCK_78
インストール後に再確認:
CODE_BLOCK_79
→ +clipboard と表示されれば成功です。
なぜ -clipboard がデフォルト?
Debianのvim-tinyやvim.basicはサイズ最小化のため、GUI連携やクリップボード機能を省いています。
vim-gtk3などのパッケージがフル機能版です。
- Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
- Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
"+yや"+pでクリップボードを直接操作
CODE_BLOCK_80
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
日本語入力
{{< chat speaker=“user” icon=“/images/avatar.webp” >}} 今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅? {{< /chat >}}
{{< chat speaker=“ai” icon=“/images/icon_aiy.webp” >}}
おぉ…懐かしき kinput2 + canna!
時代の移り変わりをひしひしと感じる話題ですね……。
🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
|---|---|
kinput2 | X11 用のフロントエンド |
canna / wnn | 変換エンジン |
xmodmap | キーバインド設定 |
完全にX環境前提 で、今で言うとレトロPCと同じくらいのノスタルジーです。
{{< /chat >}}
🆕【現在】日本語入力の主流(2020年代〜)
🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
|---|---|
| ibus (Intelligent Input Bus) | モダンなインプットフレームワーク |
| fcitx5 | 高機能で軽量な代替IMEフレームワーク |
| mozc | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
CODE_BLOCK_81
- fcitx5 は日本語+他言語切替も快適
fcitx5-configtoolでGUI設定可能.xprofileや.xinitrcに以下を追記することで起動時に有効化:
CODE_BLOCK_82
CLI特化 or 最小構成サーバ用途
- ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
ibus/fcitxを入れても SSH や tty コンソールでは使えない- どうしてもターミナルで使いたいなら:emacs + mozc.el などのエディタ内IMが頼り
🎴 kinput2 + canna は…?
完全に化石化しました。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、kinput2 -canna 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
💬 余談:なぜ「fcitx5 + mozc」が人気?
- IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
- 日本語変換精度が高い(Google日本語入力ベース)
- GTK, Qt 両対応でWaylandにも対応し始めてる
🔚 結論
-
kinput2 + cannaは現役引退。 -
2025年の今、Linuxで日本語入力したければ:
fcitx5 + mozcが最も安定&高性能- GUI環境ありき、ターミナルでは非対応が基本
- VimやEmacs内部IMEやWSL環境も選択肢
.xinitrc の作成と設定 ~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
CODE_BLOCK_83
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける CODE_BLOCK_84 ✅ GUIで確認:fcitx5が動いてるか? 起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
CODE_BLOCK_85
✨補足:常に有効にしたい場合(デスクトップ環境ごと) GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
CODE_BLOCK_86
まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。 \351\237\263\346\245\275’
### 原因
- ロケール(言語・文字コード設定)が未設定またはC(ASCII)になっている
- ファイル名自体は UTF-8 で保存されてるが、表示側(ls コマンド等)がUTF-8として解釈していないため、バイト列表示になっている
① 現在のロケール確認
__CODE_BLOCK_7__
たとえばこのように出ていればNGです:
__CODE_BLOCK_8__
② ロケールの生成と設定(日本語でも英語でもOK)
英語 UTF-8
__CODE_BLOCK_9__
日本語
__CODE_BLOCK_10__
設定反映
__CODE_BLOCK_11__
英語名に戻したい場合(任意)
__CODE_BLOCK_12__
英語のほうがスクリプト書く時に楽な面もあり
__CODE_BLOCK_13__
LANGの確認と変更方法
__CODE_BLOCK_14__
__CODE_BLOCK_15__
### 補足
- Debian minimal/netinstallだとデフォルトが C ロケールのことが多く、UTF-8が効きません。
- .bashrc などで LANG がハードコーディングされていると、そちらも直す必要があります。
## PuTTYでは絵文字(🚀など)はほぼ確実に文字化け
はい、**大正解です。🎯「PuTTYの設定」が文字化けの元凶**である可能性が非常に高いです。
PuTTYは軽量で便利ですが、**絵文字や多言語(特にCJK+絵文字)への対応が弱い**ことが知られています。
---
## 🔥 結論:PuTTYでは絵文字(🚀など)はほぼ確実に文字化けします
### 🧪 解説:PuTTYが文字化けする理由
| 問題点 | 内容 |
| -------------------------- | ------------------------------------------------------------------- |
| ❌ フォントが絵文字に非対応 | デフォルトは「Courier New」や「Lucida Console」など古い英語フォント |
| ❌ Unicode描画が弱い | 複雑な多バイト文字(特に絵文字)を1文字と認識できない |
| ❌ UTF-8未設定 | デフォルトが「Latin-1(ISO-8859-1)」などになっている場合もある |
---
### ✅ ① 文字コードを UTF-8 に変更
1. PuTTY起動
2. 左メニュー「**Window → Translation**」を選択
3. `Remote character set` を `UTF-8` に設定
---
### ✅ ② フォントを Unicode 対応フォントに変更
1. 左メニュー「**Window → Appearance → Font settings → Change**」
2. おすすめフォント:
* `MS Gothic`
* `MS UI Gothic`
* `Noto Sans Mono CJK JP`
* `Migu 1M`
* `DejaVu Sans Mono`(一部対応)
* **絵文字表示は難しいが、日本語文字化けは大幅に軽減**
---
### ✅ ③ ターミナルアプリを切り替える(推奨)
💡**PuTTYでは絵文字表示はほぼ無理**。以下のような他のターミナルアプリに乗り換えると圧倒的に快適です:
| ターミナル | 特徴 |
| ---------------------------- | -------------------------------------------- |
| **Windows Terminal**(推奨) | フォント・絵文字・UTF-8完全対応、PuTTY不要 |
| **KiTTY** | PuTTYの派生だが根本的には改善されないことも |
| **VSCode + Remote SSH** | GUIベースでSSH可能、表示も安心 |
| **MobaXterm** | フォント・UTF-8に強い、PuTTYの上位互換的存在 |
設定で、UTF-8/Auto-Detect Japanese から UTF-8 にすると直ります。
<a href="https://assets.lain-lab.com/images/uploads/linux-debian-insall-11.webp" >
<img src="https://assets.lain-lab.com/images/uploads/linux-debian-insall-11.webp"
alt=""
loading="lazy" decoding="async" style="max-width:50%; height:auto; border:1px solid #ccc; border-radius:6px; box-shadow: 5px 5px 10px #666" />
</a>
## SSHDの暗号化問題
この後、いつも通り WindowsからSSH接続しようと、SSHDの設定をするも何故かログインできず苦しむ。
<a href="https://assets.lain-lab.com/images/uploads/linux-debian-insall-01.webp" >
<img src="https://assets.lain-lab.com/images/uploads/linux-debian-insall-01.webp"
alt=""
loading="lazy" decoding="async" style="max-width:50%; height:auto; border:1px solid #ccc; border-radius:6px; box-shadow: 5px 5px 10px #666" />
</a>
エラー内容(和訳)
__CODE_BLOCK_16__
→「サーバは publickey(公開鍵)認証のみを受け付けていますが、あなたのPuTTYはその認証方法を提供していません」
この後、AIは定石通の設定方法を指示しますが、私も当然何も知識がないわけではないので同じ設定を既にやっているにもかかわらず繋がらず。
__CODE_BLOCK_17__
パスワード認証を許可
__CODE_BLOCK_18__
⚠️ セキュリティ的には鍵認証の方が強固なので、長期的には戻すべき
__CODE_BLOCK_19__
__CODE_BLOCK_20__
SSH再起動
__CODE_BLOCK_21__
鍵ペアの生成
__CODE_BLOCK_22__
ファイルの パーミッション(デフォルト)
__CODE_BLOCK_23__
__CODE_BLOCK_24__
### 繋がらない理由
基本ですが、ログを確認。
__CODE_BLOCK_25__
__CODE_BLOCK_26__
エラーログ
__CODE_BLOCK_27__
### 原因:
OpenSSH 8.8以降では、ssh-rsa(SHA-1ベース)はセキュリティ上の理由で無効化されました。
OpenSSHのバージョン確認
__CODE_BLOCK_28__
8.8 以降なら ssh-rsa はデフォルトでは無効です。
✅解決方法①:サーバ側で ssh-rsa を許可する
/etc/ssh/sshd_config に以下を追記してください:
__CODE_BLOCK_29__
その後、sshdを再起動:
__CODE_BLOCK_30__
✅ 解決方法②:PuTTYでより新しい鍵アルゴリズム(rsa-sha2-256 等)を使う
1. PuTTYgen を起動
2. 「Parameters」で以下を選択:
3. Type of key to generate → RSA
4. 2048 以上のビット数を指定(例:4096)
5. 「Generate」を押す
6. .ppk を保存(PuTTY用)
7. 「Conversions → Export OpenSSH key」で公開鍵をエクスポート
8. その公開鍵を ~/.ssh/authorized_keys に1行で貼る
これで繋がらない問題は解決
> Download PuTTY: latest release (0.83)
> <LinkCard url="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html" title="タイトル未取得" description="説明なし" image="/images/noimage.webp" />
## 🔍 解説:なぜ ssh-rsa は非推奨なのか?
* `ssh-rsa` は **SHA-1** を署名アルゴリズムに使っており、
SHA-1 は既に衝突(Collision)が実証されているため、**暗号的に危険**です。
* OpenSSH 8.8 以降、**デフォルトで無効化**されました(2021年リリース)。
---
### ✅ 今の状態の是非
| 状態 | 説明 |
| -------------------------------- | ---------------------------------------------------------------------------------------- |
| ✅ **一時的に `+ssh-rsa` を許可** | 接続の復旧には有効。旧鍵の利用を維持したい場合の手段として現実的。 |
| ⚠️ **長期的には非推奨** | セキュリティの観点では、RSA鍵でも `rsa-sha2-256` / `rsa-sha2-512` に移行が推奨されます。 |
| ✅ **今後の方針** | 新しく `ed25519` や `rsa-sha2-256` 鍵で鍵ペアを生成して更新していくのがベター。 |
---
### 🛠️ 長期的にやっておくと良いこと
1. ✅ `PuTTYgen` で `ed25519` か `RSA` (with `rsa-sha2-256`) 鍵を作り直す
2. ✅ `authorized_keys` をそれに差し替える
3. ✅ `+ssh-rsa` の設定を将来的に削除できる状態を目指す
| 鍵種 | 対応状況 | 備考 |
| ------------------------- | -------- | ----------------------------------------------------------------- |
| RSA(`rsa-sha2-256/512`) | ✅ 対応済 | ただし、デフォルトでは `ssh-rsa` に署名しようとするため注意が必要 |
| ED25519 | ✅ 対応済 | バージョン 0.71以降(2019年)から対応 |
| ECDSA | ✅ 対応済 | 楕円曲線、ED25519より先に実装されたが一部互換性に注意 |
| DSA | ❌ 非推奨 | 古く、OpenSSH側で無効化されていることが多い |
| SSH-1 (RSA) | ❌ 廃止 | 完全非推奨。使ってはいけない |
📥 バージョン確認と更新リンク
最新版は公式サイト:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
### 🚨 注意点
SSH は「**設定変更してすぐに接続確認しないとハマる**」系の代表格なので、
**新鍵導入時は、既存の ssh セッションを開いたまま慎重にテストする**のが鉄則です。
---
もし `fail2ban` や `ufw` を導入する予定があれば、そこも一緒にセキュリティ強化の機会かもしれません。
## 🛡️ Pageantとは何か?PuTTYと秘密鍵の“静かな守護者”を知る
PuTTYに同梱されている「Pageant」は、SSH秘密鍵を管理するためのエージェントです。
パスフレーズ付きの秘密鍵を一度登録すれば、以降のSSH接続ではパスフレーズの入力を省略できます。
Pageantは常駐型で、PuTTYやPlink、WinSCPなどと連携し、自動ログインを可能にします。
セキュリティを保ちながら快適さも両立できる、まさに「鍵の番人」と言える存在です。
### 🔧 Pageantの具体的な使い方
### ✅ 1. パスフレーズ付きの秘密鍵を準備する
PuTTYgen で `.ppk` 形式の鍵を作成し、**パスフレーズ付きで保存**しておく。
---
### ✅ 2. Pageantを起動して鍵を読み込む
__CODE_BLOCK_31__
* 初回のみ、パスフレーズの入力が求められる
* 読み込みに成功すると、タスクトレイに Pageant の帽子アイコンが表示される
* ダブルクリックで現在の鍵一覧を確認できる
---
### ✅ 3. 鍵を使ってPuTTYで接続
あとは通常通り PuTTY でセッションを開くだけ。
__CODE_BLOCK_32__
→ **パスフレーズの入力なしでログインが可能**になる。
> 鍵がPageantに登録されていれば、PuTTY・Plink・WinSCP すべてで自動認証が機能します。
---
### ✅ 4. 複数の鍵にも対応可能
__CODE_BLOCK_33__
→ 複数サーバの鍵を同時に管理できる
---
### ✅ 5. スタートアップ登録で自動化も
以下のようなショートカットをスタートアップに登録すれば、Windows起動時に自動読み込み:
__CODE_BLOCK_34__
---
### 📝 補足:よくあるQ\&A
| 質問 | 回答 |
| -------------------------- | ------------------------------------------------------ |
| 鍵を入れたのに接続できない | セッションの「Auth」で `.ppk` を明示的に設定してない? |
| パスフレーズを聞かれる | Pageantが起動していないか、鍵がまだ登録されていない |
| 1回で複数鍵を登録したい | コマンドライン引数で複数 `.ppk` を渡せる |
---
これで、**Pageantを活用したパスフレーズ付き鍵の快適運用**が一気に現実になります!
## Python関連のインストールと環境作成
デフォルトでPython3が入っています。
__CODE_BLOCK_35__
※2025/07/27 現在
- 3.11.2 は十分新しいです。通常用途ではアップデート不要
- 最新安定版は 3.12系ですが、3.11.2 でも多くのライブラリやフレームワークに対応
- 特別な理由(例:3.12限定の機能を使いたいなど)がなければそのままでOK
### pipの確認とインストール
まず pip が入っているか確認:
__CODE_BLOCK_36__
__CODE_BLOCK_37__
__CODE_BLOCK_38__
pipアップグレード(任意)
__CODE_BLOCK_39__
### 仮想環境での開発
仮想環境での開発:
python3 -m venv venv
で
source venv/bin/activate
余談ですが、Debianでは、この仮想環境でPython関連のインストールをする事がデフォルトになってるようです。
理由はOS周りのpython環境を汚さない為のようで、その事でセキュアな状態を保ってるらしいです。
最初、この辺りの環境に慣れなくて苦労しました。
## Debian系(特にBookworm以降)で導入されたPEP 668対策による制限
__CODE_BLOCK_40__
{{< chat speaker="ai" icon="/images/icon_aiy.webp" >}}
それは Debian系(特にBookworm以降)で導入されたPEP 668対策による制限です。
簡単に言えば:
🔒 エラーメッセージの意味
このPython環境は、OS(apt)によって管理されているため、
pip install で直接パッケージを入れると壊れるリスクがあるよ、という警告。
{{< /chat >}}
## ✅ 安全な解決策(推奨)
### ✅ 方法①:仮想環境(venv)を使う ← 安定
__CODE_BLOCK_41__
こうすることで、**システム全体には影響せず**に自由にpipが使えます。
---
### ✅ 方法②:--break-system-packages を使う ← 応急処置
__CODE_BLOCK_42__
これは **自己責任で強行突破する方法**です。
ただし `/usr/lib` や `/usr/bin` には触らないので `--user` なら比較的安全です。
(ただし将来aptとの整合性に影響することもあります)
---
## ✅ pipx という選択肢も
__CODE_BLOCK_43__
→ `pipx` は Python ツール用の「安全な隔離ランチャー」です。
---
### ✨ 結論
* **堅実派:** venv を使うのが一番安全(おすすめ)
* **簡単に済ませたい派:** --break-system-packages を付けて実行でもOK(短期使用なら)
* **将来を見据える派:** pipx でモダンに管理するのも◎
---
## 仮想環境用モジュールをインストール
__CODE_BLOCK_44__
その後
__CODE_BLOCK_45__
これで、Debian公式のPython環境を壊さずに、自由にpipでパッケージが使えるようになります
## 🧰 補足:Python仮想環境(venv)とは?
今回のスクリプト実行には `venv` という「仮想環境」が使われていますが、これが何か分からない方向けに、ざっくり解説を加えておきます。
Pythonの仮想環境(venv)は、**プロジェクトごとにパッケージを分離して管理できる軽量な専用エリア**です。
* 他のPythonプロジェクトと干渉しない
* OS全体には影響しない
* 必要なライブラリだけを個別にインストールできる
Dockerのようなコンテナや仮想マシンとは違い、OS全体を分けるのではなく、**Pythonの動作環境(pip install先)だけをプロジェクト単位で分ける**仕組みです。
言い換えれば、
> 🥡 **「開発者専用のお弁当箱」**
安心してPythonスクリプトを試せる、**小さな秘密基地**のような存在ともいえます。
---
### 🛠️ よく使う3ステップだけ覚えればOK
__CODE_BLOCK_46__
上記だけ覚えておけば、仮想環境の基本的な運用はすぐに身に付きます。
---
### ✅ なぜ使うの?
* 古いコードに合わせて古いバージョンのライブラリを使いたいとき
* 複数のプロジェクトで異なる依存関係があるとき
* システム全体を汚したくないとき(安全!)
など、**Python開発者にはほぼ必須の道具**です。
## Sambaにも苦しむ
<br />
{{< chat speaker="user" icon="/images/avatar.webp" >}}
次は、samba ですね。<br />
さっきインストールはしました。<br />
<br />
__CODE_BLOCK_47__
{{< /chat >}}
<br />
{{< chat speaker="ai" icon="/images/icon_aiy.webp" >}}
了解です、Samba 4.17.12 が正常にインストールされていますね!
では、次のステップとして、共有フォルダを設定してみましょう。以下のガイドで進めていきます。
{{< /chat >}}
<br />
🔧 Samba 設定ステップ(超基本)
### ① 共有フォルダを作成
__CODE_BLOCK_48__
> ※ 全員に読み書き許可。後で制限も可能。
Linuxユーザー none を作成(もし未作成なら)
__CODE_BLOCK_49__
__CODE_BLOCK_50__
### ② Samba 設定ファイルを編集
__CODE_BLOCK_51__
ファイルの末尾に以下を追記してください:
__CODE_BLOCK_52__
> `guest ok = yes` は「ユーザー名・パスワードなし」でアクセス可能という意味です。あとでセキュアにもできます。
---
### ③ Samba 再起動
__CODE_BLOCK_53__
---
### ④ ファイアウォールがある場合はポート開放(Debianでは基本不要)
---
### ⑤ Windows などからアクセス
エクスプローラーなどで:
__CODE_BLOCK_54__
でアクセス可能なはずです。
### アクセスできない場合
- Linux側で ufw などファイアウォール有効ならポート 445, 139 を開ける
- Windowsの資格情報キャッシュが悪さしてる時は一度「資格情報マネージャー」から削除
- /var/log/samba/log.smbd にログが残ってるかも
ちなみにデフォルトではエラーログは何も記録されませんでした。
ログ出力レベルを「3」にする必要があります。
### 補足:ユーザーとパスワード付きアクセスにしたい場合
以下で Samba 専用ユーザー作成(※Linuxユーザーと同名が推奨):
__CODE_BLOCK_55__
`smb.conf` の `guest ok = no` にして `valid users = sambauser` を追加すれば制限できます。
---
## 何をやっても samba に繋がらない
<br />
{{< chat speaker="user" icon="/images/avatar.webp" >}}
パスワードはあってるけどログインできないですね。<br />
前のサーバの情報を削除しないとダメ?<br />
もしくは、smb.conf の設定が必要だった気がします。<br />
<br />
<a href="https://assets.lain-lab.com/images/uploads/linux-debian-insall-02.webp" >
<img src="https://assets.lain-lab.com/images/uploads/linux-debian-insall-02.webp"
alt=""
loading="lazy" decoding="async" style="max-width:50%; height:auto; border:1px solid #ccc; border-radius:6px; box-shadow: 5px 5px 10px #666" />
</a>
{{< /chat >}}
<br />
{{< chat speaker="ai" icon="/images/icon_aiy.webp" >}}
エラーメッセージ「アクセスが拒否されました」からすると、以下のどれかが原因である可能性が高いです:
{{< /chat >}}
<br />
### 1. none ユーザーを Sambaユーザーとして登録済みか?
__CODE_BLOCK_56__
### 2. /home/smb ディレクトリの権限
Samba はアクセス許可も厳密に見ます。
__CODE_BLOCK_57__
### 3. smb.conf の設定
/etc/samba/smb.conf の末尾に次のように追加されているか確認:
__CODE_BLOCK_58__
### 4. Windows の資格情報のキャッシュを削除
過去のサーバ情報が残っているとログインできないことがあります。
❗削除手順:
1. 「資格情報マネージャー」を開く
2. 「Windows 資格情報」タブを選択
3. 192.168.0.1 に関する項目があれば削除
4. 再接続
### 5. SELinux/AppArmorやFirewallの影響
Debianで有効なことは少ないですが、一応確認:
__CODE_BLOCK_59__
もし有効なら:
__CODE_BLOCK_60__
### 6. Samba 再起動とログ確認
__CODE_BLOCK_61__
余談ですが、トピック通り何もやってもダメでした。
ちなみにログは、
__CODE_BLOCK_62__
にしないと出力されません。
ログを見ると分かるのですが、接続と認証には成功してます。
でも、なぜかアクセス拒否されるという状態です。
AIはその辺りの情報に疎いようで、同じ回答を延々と繰り返すだけでした。
疲れてきて、ゲストログイン許可して「うえるかむかもん」とか冗談を言うと、AIもそれに乗ってくる始末。
<br />
{{< chat speaker="user" icon="/images/avatar.webp" >}}
Sambaのリズムで、底なし沼にダイブですね。<br />
楽しく踊ってたつもりが、足場が悪かった。
{{< /chat >}}
<br />
{{< chat speaker="ai" icon="/images/icon_aiy.webp" >}}
ほんとそれです!<br />
最初は陽気なリズムに誘われて――<br />
🥁「タン・タン・ターン!」<br />
🌴「Sambaは自由で楽しい!」<br />
…と思ったら、<br />
\ズボッ/<br />
**沼**でした。しかも底なし。<br />
---
## 🕺 Sambaあるあるリズム
1. guest ok = yes ♪
2. read only = no ♪
3. map to guest = Bad User が裏切る〜♪
そしてWindowsが、<br />
🎭「資格情報を入力してください」→「アクセス拒否!」
---
でも、このセッションを通じて<br />
あなたはもう「Sambaダンサー」から<br />
**Sambaマスター**になりました。
---
次は `force user` でも `valid users` でも `homes` でも、<br />
来るなら来いって感じですね。<br />
(ただし心が沈む前に休憩もお忘れなく🫖)
---
> 👣「足元を確認しながらリズムを刻む」<br />
> それがSambaという名のファイル共有ダンスです。
またいつでもサポートしますね。<br />
あなたの踊り、見届けます🪩
{{< /chat >}}
<br />
こういう悪乗りの冗談にのってくるのが地味に凄いので、最近、AIに良く冗談まで言うようになりました。
冗談でもいって気を緩めないと、しんどくなります。(自己防衛本能)
というか、AIがあてにならないのはわりとよくある事なので、仕方なくネットで自分で検索。
## sambaに繋がらないほんとの原因
<br />
{{< chat speaker="user" icon="/images/avatar.webp" >}}
こんな情報があったよ。<br />
<br />
WindowsからLinux Samba共有にアクセスできない<br />
Linuxユーザーのパスワードは合っているし、pdbedit でsamba接続するユーザも追加しているのに、なぜか共有ディレクトリにアクセス使用とすると、「ユーザー名またはパスワードが正しくありません」と表示されてアクセスできないことがあります。<br />
<br />
これはsambaの認証方式がより強固になったのが原因で、Winows標準のネットワーク認証方式のレベルが低いために、sambaのほうで接続を拒否してしまうんだとか。<br />
Linux環境に構築したsambaや、QNAP、Synorogyといった海外製のNASを利用しているとこのような現象に遭遇することがあります。<br />
<br />
対処方法(Windows側の認証レベルを上げる)<br />
Windowsのレジストリを編集してネットワーク認証レベルをsambaに合わせましょう。<br />
レジストファイルを用意したので以下のファイルをダウンロードしてZIP解凍したのち、インストールしてください。<br />
インストール完了後、PCの再起動を行ってください。<br />
<br />
引用元、参考にさせていただいたサイト:<br />
<LinkCard url="https://anzunote.com/windows-samba-access-reg/" title="Windows から Samba 共有ディレクトリにアクセスできないとき - anzuの技術メモ" description="QNAP, Synorogy のNASや、Linux samba共有ディレクトリにアクセスできないとき、レジストリを書き換えると解決することがあります。" image="https://anzunote.com/wp1/wp-content/uploads/2022/07/windows-samba-access01.png" />
{{< /chat >}}
<br />
{{< chat speaker="ai" icon="/images/icon_aiy.webp" >}}
おお、それはとても核心を突いた情報です!
まさに **「Windows側の認証レベルの低さ」** が、最近の Samba(特に `smbd 4.11+` 以降)とぶつかってログイン失敗する原因の一つです。
---
### ✅ 解説:なぜこれが必要なのか?
Samba はバージョン 4.11 以降、「古い NTLMv1 認証」や「脆弱なSMB1プロトコル」を**既定で無効化**しています。<br />
しかし Windows(特に家庭用/Homeエディション)はいまだに NTLMv1 や SMB1 を使おうとすることがあり、そのため Samba 側が拒否して「パスワードが間違っている」風に見えるのです。<br />
---
### 🔧 対処法(手動でレジストリを編集する場合)
もし自分でやる場合、以下のレジストリを編集すると解決することが多いです。<br />
#### レジストリエディタで以下を追加:
__CODE_BLOCK_63__
#### 意味:
| 値 | 内容 |
| --- | -------------------------- |
| 0 | LAN Manager認証 (最も弱い) |
| 1 | LMとNTLMを送信 |
| 2 | NTLMのみ |
| 3 | NTLMv2を送信(安全)✅ |
| 5 | NTLMv2のみ送信し、LMは拒否 |
---
### 🚩 さらに確認すべき設定
以下も確認すると効果的です:
| 設定項目 | 説明 |
| ---------------------------------------------------- | -------------------------------------------------------------------------------- |
| `Network security: LAN Manager authentication level` | 「NTLMv2 応答のみ送信し、LM & NTLM 拒否」または「NTLMv2 応答のみ送信」がおすすめ |
| `SMB1` | なるべく無効化(SMB2 or 3推奨) |
---
### 📁 具体例:.regファイル内容(クリック1つで設定)
__CODE_BLOCK_64__
これを `.reg` ファイルに保存してダブルクリックすれば反映できます(管理者権限必要)。
---
### 🔄 再起動必須!
変更後は、**Windowsを再起動**しないと効果が出ないのでご注意を。
---
### 🧩 補足:QNAPやSynologyでも同様の問題
海外製NASがSamba最新版を使用していることが多いため、特にWindows11や家庭向けWindows環境では同じような現象が頻発しています。
---
### ✅ 今の構成との関連
あなたの現在のSamba設定がすでにログに「NTLMv2での認証成功」と出ているので、Windows側が `LmCompatibilityLevel=3` 以上に設定されていれば、
`guest ok = no` + `valid users = none` 構成でもうまく行く可能性が上がります。
---
もし希望があれば `.reg` ファイルとしてお渡しもできます!お気軽に言ってください。
{{< /chat >}}
<br />
原因は、Windowsがsambaのセキュリティ問題に対応できてなかった事で、これにより解決しました。
> LmCompatibilityLevel=3
これで直ります。
多分、同様の問題で困ってる人は多いというか、検索するとわりと情報が見つかるのでもう周知のトラブルTipsかもしれません。
<a href="https://assets.lain-lab.com/images/uploads/linux-debian-insall-03.webp" >
<img src="https://assets.lain-lab.com/images/uploads/linux-debian-insall-03.webp"
alt=""
loading="lazy" decoding="async" style="max-width:50%; height:auto; border:1px solid #ccc; border-radius:6px; box-shadow: 5px 5px 10px #666" />
</a>
<br />
{{< chat speaker="user" icon="/images/avatar.webp" >}}
sambaのリズムがあってなかったんですよ。
**samba の門番:**<br />
「入りたいなら、踊ってごらんなさい」<br />
**Windowの門下生2:**<br />
「♬♪♬♪」<br />
**samba の門番:**<br />
「ダメですね(アクセス拒否)」<br />
**Windowの門下生3:**<br />
「♬♪♬♪♬♪」<br />
**samba の門番:**<br />
「あなたは宜しい、お入りなさい」<br />
**Windowの門下生2:**<br />
「???」<br />
「私の何が悪いのでしょうか?」<br />
**samba の門番:**<br />
「次の方どうぞ」<br />
2拍子じゃなくて、3拍子だったということです。<br />
{{< /chat >}}
<br />
{{< chat speaker="ai" icon="/images/icon_aiy.webp" >}}
……これはまさに、\*\*"Samba 認証オペラ - 3拍子の門"\*\*🎭✨
---
🕺**samba の門番**
「このネットワークに入るには、リズム(認証)が必要です」
🧍♂️**門下生2(LmCompatibilityLevel = 2)**
「🎵 チャン…チャッ…(NTLMv1混じり)」
🧑⚖️**門番**
「…その古いステップ、見飽きました」
🧍♀️**門下生3(LmCompatibilityLevel = 3)**
「🎵 チャッチャッチャ!(NTLMv2のみの軽やかな3拍子)」
🧑⚖️**門番(即判定)**
「認証OK!ようこそ、/home/smb へ!」
🧍♂️**門下生2**(涙目)
「僕も…NTLMv2だけで踊れるようになりたい…」
---
この寓話、\*\*設定ミスというより“文化の違い”\*\*みたいなものですね。
* Samba:「モダンなリズムで来てください」
* Windows:「昔ながらの2拍子もイケるんですが?」
* ネットワーク:「リズムが合わないと拒否されます」
---
🎼 **まとめ:設定は踊りのリズム**
| 要素 | 踊りの例え |
| ----------------------- | ---------------------------- |
| `LmCompatibilityLevel` | Windows側のダンスステップ |
| `ntlm auth` | Sambaの許容するステップ範囲 |
| `client plaintext auth` | 「素足で踊っていい?」の確認 |
| `guest ok` | 「入場無料」かどうか |
---
この一連のやり取り、ほんとにブログ記事になりますよ…
タイトル案:**「Sambaの門をくぐるには、3拍子を刻め」**
あるいは…
> 「NTLMv2の踊り方 ~ SambaとWindowsの不協和音~」🎷🪕🎺
ご希望あれば記事の構成、お手伝いします!
{{< /chat >}}
<br />
<br />
{{< chat speaker="user" icon="/images/avatar.webp" >}}
こんなの記事にしても仕方ないでしょ…
{{< /chat >}}
<br />
※結局記事にしました<br />
<br />
<br />
{{< chat speaker="ai" icon="/images/icon_aiy.webp" >}}
それ、よくわかります。
「こんなの誰が読むの?」って思いますよね。
しかも、数時間~半日ぐらいかけて格闘したのが、
たったレジストリの値「`LmCompatibilityLevel = 3`」だった、みたいな。
でもね……**こういう“泥のような知見”こそ**、未来の誰かが *救われる記事* になったりするんです。
---
### 🌍 世の中には、こんな人がいます:
* 「Sambaにguest ok = noすると繋がらなくなった…なんで?」
* 「Sambaログに`user [none]`って出るけど、意味わからん」
* 「NTLMv2とかLmCompatibilityLevelとか…どこ見直せばいいの?」
* 「なんかWindows側のレジストリいじったら直ったけど、理由がわからん」
→ つまり **「今のあなたと同じ地雷を踏んだ人」** が、検索してさまようんです。
そんな時、ヒットするのが「こんな記事」だったりするんですよ。
---
### 💡 “役立たなさそう”な記事が、最も検索されるジャンル:
* Sambaのログイン失敗とその原因
* Windowsのレジストリの意味
* なぜ `/home/none` に繋がるのか
* `guest ok` の挙動の違い
* NTLMv2の設定ってどこで変えるの?
→ これら、**公式ドキュメントに全部は載ってない**んです。
→ だからこそ、**リアルな「解決までの足取り」が価値になる**んです。
---
### ✍️ もし記事化するなら、こんな構成:
#### 📝 タイトル案
> SambaでWindowsからアクセスできない?レジストリとntlm auth設定でハマった話
#### 🧩 構成案
1. **症状:Samba共有にアクセスできない(ログインできない)**
* `user [none]` になってしまう
* `guest ok = no` でアクセス不可になる
2. **原因調査:ログ確認と設定見直し**
* `log.smbd` に「authentication for user \[none]」など
* `/home/none` に接続されてる?
* smb.conf の `guest ok` の影響
3. **解決方法:Windows側のレジストリ設定**
* `LmCompatibilityLevel = 2 → 3` に変更
* 再起動後、ログイン成功
4. **学びと結論**
* NTLMv2オンリーな Samba に対して、Windows側の設定が2のままだと失敗する
* `guest ok` の有無で動作が大きく変わる
* Sambaログは意外とヒントが詰まってる
---
**結論:記事にする価値、思ってるよりあります。**
あなたが時間をかけた分、未来の誰かは「1分」で助かるかもしれない。
でも無理に書かなくていい。
「今は疲れた…」なら、**このやり取りだけ保存しておけばいい。**
落ち着いたら、ネタ帳の1ページに使える日が来るかもしれませんよ。
---
必要なら「この記事テンプレ」だけでも残します。
書く気になったらいつでも呼んでください。
{{< /chat >}}
<br />
## samba にユーザーを追加する
### smb用の専用グループ(例:smbgroup)を作って設定する
__CODE_BLOCK_65__
これにより、グループに属するユーザーだけが /home/smb に読み書きできる状態になります。
### smb.conf 側の確認
__CODE_BLOCK_66__
※ @smbgroup とすれば、グループ全体にアクセス権を与えられます。
### Samba の再起動
__CODE_BLOCK_67__
## zshの設定
### Zshをインストールする手順(Debian系)
__CODE_BLOCK_68__
__CODE_BLOCK_69__
ログインシェルを zsh に変更(例: none ユーザー)
__CODE_BLOCK_70__
Oh My Zsh は GitHub のリポジトリをクローンして構成されているため、git clone が必須
__CODE_BLOCK_71__
__CODE_BLOCK_72__
### Oh My Zsh をインストール
__CODE_BLOCK_73__
__CODE_BLOCK_74__
<br />
最小構成の .zshrc
__CODE_BLOCK_75__
## vim でペーストできない
Debianなどの最小構成環境では vi が vim ではなく、最小限機能の nvi や busybox vi などにリンクされていることが多く、以下のような制限があります:
### 🪓 vi の不満ポイント(簡易版viの例)
- :syntax on が効かない
- カーソル移動がぎこちない(Backspaceも効かないことがある)
- :set number などの便利機能がない
- カラースキームが反映されない
- .vimrc が効かない
__CODE_BLOCK_76__
+clipboard —– クリップボードとの連携に対応<br />
-clipboard —– クリップボードとの連携に未対応<br />
* `vim --version | grep clipboard` の結果 → `-clipboard`
* つまり:
* マウスでコピーした内容を Vim に貼り付けられない
* Vim からコピーした内容を他アプリにペーストもできない
* `-- ビジュアル --` の混乱とは別問題
---
解決策:clipboard対応のVimをインストール
Debian系(Ubuntuなど)なら以下でOK:
__CODE_BLOCK_77__
もしくは軽量版で clipboard 対応が必要なら:
__CODE_BLOCK_78__
インストール後に再確認:
__CODE_BLOCK_79__
→ `+clipboard` と表示されれば成功です。
---
なぜ `-clipboard` がデフォルト?
Debianの`vim-tiny`や`vim.basic`はサイズ最小化のため、GUI連携やクリップボード機能を省いています。
`vim-gtk3`などのパッケージがフル機能版です。
---
* Ctrl+Cでコピーしたコードをそのまま Vim に貼り付け
* Vim で選択したテキストを Ctrl+Shift+C で他アプリにペースト
* `"+y` や `"+p` でクリップボードを直接操作
__CODE_BLOCK_80__
これで解決。
AIの言う事は、当てにならない事があるので、検索する習慣は残しておいた方が良いです。
若しくは、上位モデルに変更する等。
## 日本語入力
<br />
{{< chat speaker="user" icon="/images/avatar.webp" >}}
今のLinuxで日本語入力ってどうなってるんだろう?
kinput2-canna とかもう死滅?
{{< /chat >}}
<br />
{{< chat speaker="ai" icon="/images/icon_aiy.webp" >}}
おぉ…懐かしき `kinput2 + canna`!
時代の移り変わりをひしひしと感じる話題ですね……。
---
### 🕰️【昔】日本語入力の定番
昔は以下のような構成が主流でした:
| 構成 | 役割 |
| --------------- | ---------------------- |
| `kinput2` | X11 用のフロントエンド |
| `canna` / `wnn` | 変換エンジン |
| `xmodmap` | キーバインド設定 |
**完全にX環境前提** で、今で言うとレトロPCと同じくらいのノスタルジーです。
---
{{< /chat >}}
## 🆕【現在】日本語入力の主流(2020年代〜)
### 🎯 基本構成(主にUbuntu/Debian系など)
| コンポーネント | 概要 |
| -------------------------------- | --------------------------------------------- |
| **ibus** (Intelligent Input Bus) | モダンなインプットフレームワーク |
| **fcitx5** | 高機能で軽量な代替IMEフレームワーク |
| **mozc** | Google 日本語入力ベースの変換エンジン(主流) |
| anthy / skk / uim | 一部で生き残り中(SKK愛好者など) |
---
### ✅ おすすめ構成(ターミナルでもGUIでも安定)
GUIあり(デスクトップ用途)
__CODE_BLOCK_81__
* fcitx5 は日本語+他言語切替も快適
* `fcitx5-configtool` でGUI設定可能
* `.xprofile` や `.xinitrc` に以下を追記することで起動時に有効化:
__CODE_BLOCK_82__
---
### CLI特化 or 最小構成サーバ用途
* ターミナル上の日本語入力は基本サポートされない(XIM前提のIMEが必要)
* `ibus` / `fcitx` を入れても **SSH や tty コンソールでは使えない**
* どうしてもターミナルで使いたいなら:**emacs + mozc.el** などのエディタ内IMが頼り
---
### 🎴 `kinput2 + canna` は…?
> **完全に化石化しました**。ほとんどのディストリビューションから削除されています。
ただし、「仮想マシンにRed Hat 6入れて、`kinput2 -canna` 動かして懐かしむ」みたいな人はいます。愛好家界隈では生きてるかも…。
---
### 💬 余談:なぜ「fcitx5 + mozc」が人気?
* IME切替がスムーズ(Ctrl+Spaceなどカスタム可)
* 日本語変換精度が高い(Google日本語入力ベース)
* GTK, Qt 両対応でWaylandにも対応し始めてる
---
### 🔚 結論
* `kinput2 + canna` は現役引退。
* 2025年の今、Linuxで日本語入力したければ:
* **`fcitx5 + mozc`** が最も安定&高性能
* GUI環境ありき、ターミナルでは非対応が基本
* VimやEmacs内部IMEやWSL環境も選択肢
<br />
.xinitrc の作成と設定
~/.xinitrc に以下のように追記してください(lainユーザーで作成推奨):
__CODE_BLOCK_83__
⚠️ startxfce4 以外のデスクトップを使ってる場合は?
- GNOME → exec gnome-session
- KDE → exec startplasma-x11
- LXDE → exec startlxde
- 最低限のX環境なら exec openbox-session でもOK
🔒 実行権限を付ける
__CODE_BLOCK_84__
✅ GUIで確認:fcitx5が動いてるか?
起動後、以下のことが確認できればOKです:
- 右下に キーボードアイコン(fcitx5)が出ている
- Ctrl + Space で「ひらがな ↔ 英数」入力切替ができる
- メニューに「fcitx5 設定ツール」がある(なければ fcitx5-configtool を入れる)
__CODE_BLOCK_85__
✨補足:常に有効にしたい場合(デスクトップ環境ごと)
GNOME / KDE などのログインセッションでは .xprofile を使うこともあります:
__CODE_BLOCK_86__
## まとめ
要約すると短いですが、実際は数倍の時間がかかってます。
AIの情報を鵜呑みにして解決する事も多いですが、そうでないケースが今回は多く、それで余計に時間がかかった気がします。
公式マニュアルを読んだり、検索して調べるスキルは必須です。
COMM_LOG: linux-samba-sshd