OllamaをSSHで非対話セットアップする全工程を解説。インストール罠・バイナリ直接DL・systemdサービス化・qwen2.5:7bで日本語チャットまでの実録ガイド。
ローカルLLMを試してみようと思ったきっかけは些細なことだった。クラウドのAIに社内の話を投げることへの漠然とした抵抗感。規約を読めば問題ないのはわかっている。でも「外に出ていない」という感覚には、それとは別の意味がある。
Ollamaはその入り口として名前をよく聞く。ollama pull でモデルを落として ollama run で話しかけるだけ、と書いてあった。試してみた。最初の一歩でコケた。
ただし後述するが、これは私の環境に起因するものだった。
この記事でわかること
- SSH越しのヘッドレスサーバーでOllamaがインストールできない理由と解決策
.tar.zst形式への変更点と正しい展開方法- systemdサービス化・qwen2.5:7bでの日本語チャットまでの全手順
Ollamaは、LLMをローカルで動かすためのラッパーツールだ。内部エンジンにllama.cppを使っており、モデルの管理・API提供・CLIチャットをひとまとめにしている。
ollama pull モデル名 でダウンロード、ollama run モデル名 でチャットが始まる。APIサーバーとして動かせばアプリケーションから呼び出すことも可能。「Dockerっぽい感覚でモデルを管理できる」という表現が一番イメージに近い。
| 項目 | 値 |
|---|---|
| OS | Ubuntu 24.04.4 LTS(ヘッドレスサーバー) |
| CPU | AMD Ryzen 9 5900(24スレッド) |
| RAM | 32GB |
| GPU | NVIDIA GeForce RTX 4070 Ti(12GB VRAM) |
| Ollama | v0.16.3 |
| 操作方法 | SSH越しにリモート管理 |
自宅のAIサーバーをSSHで操作している環境だ。デスクトップに座ってターミナルを開いているわけではない。この前提が後の話に関係してくる。
公式が案内するワンライナーはこれ。
curl -fsSL https://ollama.com/install.sh | sh
通常のUbuntuターミナルから実行すれば、これで問題なく入る。
ただしSSH越しの非対話セッションで実行すると、ここで止まる。
>>> Installing ollama to /usr/local
sudo: a terminal is required to read the password
このメッセージを見た瞬間は、正直「公式の手順すら満足に通らないのか」と拍子抜けした。スクリプト内でsudoを使っているため、パスワード入力プロンプトが出ない環境では詰まる。「ヘッドレスサーバーをSSHで管理している」人間が引っかかるパターンだ。
ここで古いネット情報を信じると別の罠がある。以前は単一バイナリの配布だったが、現在は .tar.zst(Zstandard圧縮)のアーカイブに変わっている。tar -xzf では展開できない。
最新リリースは GitHub Releases で確認できる。
# 最新バージョン確認
curl -I https://github.com/ollama/ollama/releases/latest 2>&1 | grep location
# → v0.16.3
# ダウンロード・展開
curl -fsSL https://github.com/ollama/ollama/releases/download/v0.16.3/ollama-linux-amd64.tar.zst \
-o /tmp/ollama.tar.zst
tar -I zstd -xf /tmp/ollama.tar.zst -C /tmp/
展開すると bin/ollama と lib/ollama/(GPU用ライブラリ)が出てくる。
配置先はユーザー所有の ~/.local/bin/ が楽だ。sudo cp でシステムパスに置くと、rootのumaskが077でパーミッションが600になって実行できなくなる。
mkdir -p ~/.local/bin ~/.local/lib
cp /tmp/bin/ollama ~/.local/bin/
cp -r /tmp/lib/ollama ~/.local/lib/
毎回手動で起動するのは面倒なので、サービス化する。
# /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
Type=simple
User=YOUR_USER
ExecStart=/home/YOUR_USER/.local/bin/ollama serve
Environment=HOME=/home/YOUR_USER
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now ollama
起動ログを見ると、GPUを自動検出してくれる。
inference compute: NVIDIA GeForce RTX 4070 Ti | CUDA compute=8.9 | total="12.0 GiB"
ここまで来れば動く。
モデルはAlibaba製の qwen2.5:7b(4.7GB)を選んだ。日本語対応モデルの中では扱いやすく、コード生成時に自然な日本語コメントを付けてくれる。
ollama pull qwen2.5:7b
ollama run qwen2.5:7b

Pythonでフィボナッチ数列を、コメントは日本語で、と依頼したところ一発で出てきた。文法的にも不自然なところはなかった。

推論中のVRAM使用量を nvidia-smi で確認すると約5GB。RTX 4070 Ti(12GB)なら余裕がある。

動いてしまえば快適だ。セットアップから数週間経つが、特に問題なく動き続けている。ollama run だけでターミナル内でチャットが完結するし、APIサーバーとして動かせば他のツールからも呼び出せる。
速度はGPU次第で全く変わる。RTX 4070 Tiで10〜30 tok/s前後が体感の目安だが、GPUなしのCPU推論だと10倍以上遅くなる。「ローカルLLMを実用的に使いたい」なら、VRAM 8GB以上のGPUは必要だと思う。GPU選びで迷っているならGPUランキングも参考になる。
同じローカルLLMでも、日本語精度にこだわるなら話は変わる。NVIDIAが出した
BlogNemotron-Nano-9B日本語版を実測——NVIDIA日本語特化LLMの実力と限界NVIDIAが開発した日本語特化ローカルLLM「Nemotron-Nano-9B-v2-Japanese」をUbuntuサーバー(RTX 4070 Ti)に実際にインストールして動かした実録。日本語品質・速度・VRAM使用量を正直に評価。→はOllamaでは動かないが、日本語品質は別格だった。
Q. GPUなし(CPUのみ)でも動きますか? 動く。ただし速度が10倍以上遅くなる。4〜8GBモデルで数分/応答レベルになるため、実用的な用途には厳しい。
Q. Windowsでも使えますか? 公式にWindowsをサポートしている。インストーラーが用意されており、通常のGUIアプリ感覚でセットアップできる。今回の記事のSSH問題はLinux/Mac環境特有の話。
Q. qwen2.5:7b以外のモデルは?
Ollamaの公式モデルライブラリに一覧がある。llama3・mistral・gemmaなど主要モデルは一通り揃っている。日本語用途なら qwen2.5:7b か elyza 系が安定している。
Q. モデルはどこに保存されますか?
デフォルトは ~/.ollama/models/。ディスク容量に注意が必要で、7Bモデルで4〜5GB、13Bで8〜9GBが目安。
.tar.zst を直接ダウンロードして対処tar -I zstd で展開する(gzipではない)~/.local/bin/ に置くとパーミッション問題を回避できるqwen2.5:7b は日本語用途で十分実用的手元で動くAIに「外に出ない」という安心感がある。それだけで使う意味があると思っている。もっとも、モデルそのものは誰かが作ったものだ。私はそれを動かしているだけで、「自分のAI」と呼べるかどうかは微妙なところだ。
HW系エンジニアとして20年以上、10,000件を超える顧客訪問と2,000件を超える単独ソリューション実績。AIツールを使った個人開発やIoT農園など、Raspberry Piを使ったオートメーション化なども実践中です!エンジニア専門結婚相談所も運営中、ClaudeCodeで解決できない心の課題も解決いたします!
META-MARK × AI
ローカルAIを動かすGPU、ちゃんと選べていますか?
VRAM・性能・コスパをMetaScoreで数値化。AIアプリ別の推奨ハードウェア要件も確認できます。