RSS

Windows からSSH 鍵対を使って Linux に SSH でログインする

ssh コマンドを使って Linux にログインする場合、Windows でもパスワード入力をいちいち行わずにログインできる。

SSH 鍵対 (キーペア) の作成

初めて ssh を使う場合は、SSH 鍵対を作る必要がある。これは、C:\Users\user\.ssh というフォルダに作られる。

もし、このフォルダが存在し、中身がある場合はすでに作成されているのでこの作業は必要ない。

以下のコマンドを実行すると、このSSH 鍵対が作られる。

ssh-keygen -t ed25519

Linux にこの SSH 鍵対を登録する

Windows の \Users\user\.ssh にファイル id_ed25519.pub があるはずなので、中身を表示してみる。

(例)ssh-ed25519 AAAAC3NzaC1l…..b8xf3CsndSb7r3aW//OSn1g0OZTWArcaz windowsuser@thepc

TeraTerm などで Linux に接続し、この文字列全部を Linux 側の以下のファイルに追加する。

/home/user/.ssh/authorized_keys

パスワードなしで接続できるか確認

Windows Terminal から ssh コマンドで Linux に接続してみる。パスワードを要求されずに接続できたら成功。

 
コメントする

投稿者: : 2026/10/09 投稿先 Linux, Windows

 

タグ:

Ruby: YAMLの基本

YAML は JSON の上位互換の言語であり、JSON と相互変換ができる。

YAMLの書き方の基本

  • インデントはスペース2 or 4(タブ禁止)
  • キー: 値 の形式で書く
  • 配列は - を使う
  • ネストはインデントで表現
  • 文字列は基本的に引用不要(必要なときだけ ' or ")

📘 YAMLの基本構造

1. キーと値

コード

name: makandat
age: 42
  • : の後ろにスペースが必要
  • 値は文字列・数値・真偽値など何でもOK

2. インデントで階層を作る

コード

user:
name: makandat
skills:
- Ruby
- C++
  • タブ禁止
  • インデントはスペース2 or 4で統一する

3. 配列(リスト)

コード

languages:
- Ruby
- Python
- C++

オブジェクトの配列も書ける:

コード

servers:
- host: example.com
port: 80
- host: api.example.com
port: 443

4. 文字列の扱い

基本は引用不要:

コード

message: こんにちは

特殊文字がある場合だけ引用:

コード

path: "/usr/local/bin"
note: 'コロン: を含む文字列'

5. 複数行の文字列

整形を保持する場合(|):

コード

description: |
これは複数行の
テキストです。

改行を折りたたむ場合(>):

コード

summary: >
これは複数行だが
1行にまとめられる。

6. コメント

コード

# これはコメント
name: makandat # 行末にも書ける

📌 よくある落とし穴

  • タブを使う → エラー
  • インデントがズレる → 意図しない構造になる
  • : の後ろにスペースを入れ忘れる → パース失敗
  • JSONの癖で {} や [] を使いすぎる → YAMLの利点が消える

YAMLの例

app:
  name: sample-app
  version: 1.0.0

  database:
    host: localhost
    port: 5432

  features:
    - login
    - search
    - analytics

特別なキーを使うとき

キーの文字列は原則自由だが、次のような場合は、引用符で囲む必要がある。

  • 数字だけのとき 数値と誤認されないように
  • コロン(:)を含むとき : はキーと値を分けるのに使うため
  • キーの先頭が特殊文字のとき (?, -, *, &, #, !, %, @, , など) 

(例)

“123”: 3456
“A:B”: ABC
“%xx”: 0xfd

コメント

YAML のコメントは # … である。複数行コメントは存在しない。// のようなC/C++コメントもない。

値が数値のとき

整数と浮動小数点数のみ数値とみなされる。よって、複素数や16進数はない。

複素数や16進数を値として書いても文字列とみなされる。複素数を表したいときは、配列などを使う。

キーと値の間のコロン

キーと値の間にはコロンを書くが、これは必ず ‘: ‘ であること。空白はTABやLFは許されない。だたし、コロンの前の空白は許され、あとの複数の空白も許される。(非推奨)

コロンのあとの空白は必須である。

入れ子(ネスト)

下のような書き方に注意する。

  • タブは禁止(必ずスペース)
  • インデント量は 2 or 4 に統一
  • オブジェクト → key: の下にインデントして書く
  • 配列 → - の下にさらにインデントして書く

🧱 1. オブジェクトの入れ子

コード

server:
host: example.com
database:
user: admin
password: secret

階層構造はインデントだけで表現される。

📦 2. 配列の入れ子

コード

servers:
- host: example.com
port: 80
- host: api.example.com
port: 443

- の下にさらにインデントしてオブジェクトを書く。

🔁 3. オブジェクトの中に配列

コード

user:
name: makandat
skills:
- Ruby
- C++
- Linux

📚 4. 配列の中にオブジェクトの配列(よくある構造)

コード

projects:
- name: alpha
members:
- makandat
- alice
- name: beta
members:
- bob
- charlie

型の指定

!!型名で値の方を直接指定できる。

version: !!str 01
count: !!int "42"
rate: !!float 1
enabled: !!bool "false"
items: !!seq
- a
- b
config: !!map
key: value

Ruby のコード例

require "yaml"

def pretty_yaml(data)
  data.each do |key, value|
    puts "#{key}:"

    case value
    when Hash
      value.each do |k, v|
        if v.is_a?(Array)
          puts "  #{k}:"
          v.each { |item| puts "    - #{item}" }
        else
          puts "  #{k}: #{v}"
        end
      end

    when Array
      value.each { |item| puts "  - #{item}" }

    else
      puts "  #{value}"
    end

    puts
  end
end

# YAML読み込み(安全)
content = File.read("config.yml", encoding: "UTF-8")
data = YAML.safe_load(content)

pretty_yaml(data)

YAMLとJSONの相互変換

yq コマンドを使うと YAML / JSON の相互変換ができる。このコマンドは gem コマンドでインストールできる。

yq -o=json input.yml
yq -o=yaml input.json

あるいは、Ruby を使ってもかんたんなコードで作れる。

YAML から JSON

require "yaml"
require "json"

data = YAML.safe_load(File.read("input.yml", encoding: "UTF-8"))
puts JSON.pretty_generate(data)

JSON から YAML

require "json"
require "yaml"

data = JSON.parse(File.read("input.json", encoding: "UTF-8"))
puts YAML.dump(data)

 
コメントする

投稿者: : 2026/10/07 投稿先 Ruby

 

タグ:

apt コマンドのよくある質問

apt と apt-get

apt はユーザー向け(対話的・見やすい・簡略化)、一方、apt-get はスクリプト向け(互換性重視・出力が機械的)である。

サブコマンドはだいたい同じだが、フルアップグレードだけは異なる。
apt full-upgrade / apt-get dist-upgade

apt と dpkg

dpkg は.deb パッケージを直接インストール・削除するローレベルツール、apt はリポジトリ管理・依存解決・更新・検索を行うハイレベルツールである。

dpkg は依存関係の解決はしない。(apt はする)

apt を使わない Linux ディストリビューション

他のディストリビューション(Debianベースでないもの)では、以下のようなパッケージ管理コマンドが使われる。

  • RHEL/Fedora/CentOSなどは ‘yum’ コマンド
  • Alpine Linux では ‘apk’ コマンド
  • Arch Linuxでは’pacman’ コマンド。Linux でないが、MSYS2 もpacman を使う。

clean、remove、purge の違い

  • clean APT の全キャッシュを削除する。(空きディスク容量を増やせる)
  • remove パッケージを削除するが設定ファイル(/etc 以下のファイル) は残る。再インストールすると、その設定ファイルが有効になる。
  • purge 設定ファイルも含め完全削除。

autoclean と clean の違い

  • autoclean 必要なキャッシュは残す。「古いものだけ削除」なので clean とは別物。
  • clean すべてのキャッシュを消す。

autoremove について

  • autoremove は不要になった依存パッケージ削除する。(設定ファイルは残る)
  • autopurge (設定ファイルも消す) コマンドは存在しないが、–purge オプションがある。
    sudo apt autoremove –purge

パッケージ一覧

  • apt list すべてのパッケージ一覧。たくさん表示されるので、普通は grep と併用する。
  • apt list –installed インストール済みのパッケージ一覧
  • dpkg -l 低レベルな情報も一緒に表示
  • apt search APT の パッケージデータベースを検索する。パッケージ名だけでなく説明文やバージョンも検索できる。
  • apt-mark showmanual 自分でインストールしたパッケージ一覧

 
コメントする

投稿者: : 2026/10/07 投稿先 Linux

 

タグ:

Ruby のテンプレート slim をコマンドとして使って HTML ファイルを生成する

Ruby の Slim にはコマンドラインツールがあり、.slim ファイルを HTML に変換できます。

インストール

gem install slim

これでコマンドラインツールが使えると思っていたが、使えなかったので、次のようなスクリプトを書いて代用した。

#!/usr/bin/env ruby
require "slim"

slim_file = ARGV[0]
if slim_file.nil?
  abort "Error: No Input file."
end
html_file = ARGV[1]
if html_file.nil?
  abort "Error: no Output file."
end

template = File.read(slim_file, encoding:"UTF-8")
html = Slim::Template.new(pretty: true) { template }.render

File.write(html_file, html)

puts "This wrote #{html_file}."

Express でよく使われる pug は slim とほとんど同じように使える。これは pug-cli をインストールするとコマンドとして使える。

sudo npm -g install pug-cli

使い方

リダイレクトを使って変換結果をファイル保存するには

slim sample.slim > sample.html

これは、-o オプションを使うことでも可能。

slim -o sample.html sample.slim

slim の基本

  • h1 Hello タグ
  • div タグ
  • p Hello インデント
  • p.message Hello class
  • #main id
  • a(href=”/”) Home 属性
  • / comment HTMLコメント

slim のコード例

doctype html
html
head
title Sample
body
h1 Sample

slim のルール

1. タグ

HTMLのタグ名を書くと、そのままタグになります。

h1 Hello
p これは文章です。

↓

<h1>Hello</h1>
<p>これは文章です。</p>

div は省略記法があり、単にクラスを書くこともできます。

div
p Hello

2. インデントで入れ子にする

Slim の最大の特徴です。

html
head
title テスト
body
h1 Hello
p こんにちは

↓

<html>
<head>
<title>テスト</title>
</head>
<body>
<h1>Hello</h1>
<p>こんにちは</p>
</body>
</html>

インデントがHTMLの階層になります。

スペース2個でも4個でも構いませんが、同じファイル内では統一します。

3. クラス

p.message Hello

↓

<p class="message">Hello</p>

複数のクラスも書けます。

div.container.main
p.message Hello

↓

<div class="container main">
<p class="message">Hello</p>
</div>

4. id

# を使います。

div#main
h1#title Hello

↓

<div id="main">
<h1 id="title">Hello</h1>
</div>

クラスと組み合わせることもできます。

div#main.container

5. div は省略できる

これは Slim でよく使います。

#main.container
h1 Hello
p Test

つまり、

div#main.container

と同じです。

↓

<div id="main" class="container">
<h1>Hello</h1>
<p>Test</p>
</div>

6. 属性

HTMLの属性は () の中に書きます。

a(href="/index.html") Home

↓

<a href="/index.html">Home</a>

複数の場合:

input(type="text" name="username" id="username")

↓

<input type="text" name="username" id="username">

7. 属性のショートカット

href や id などは、よく使うものに短縮記法があります。

a[href="/index.html"] Home

ただし、通常は

a(href="/index.html") Home

のほうが分かりやすいので、最初はこちらをおすすめします。


8. テキスト

タグの後ろにそのまま書きます。

h1 こんにちは
p これはSlimのテストです。

長い文章なら | を使えます。

p
| これは長い文章です。
| ここも同じp要素の中です。

9. HTMLをそのまま書く

| を使えば、HTMLとして解釈されない通常のテキストを書けます。

p
| Hello <world>

HTMLタグとして扱いたい場合は、== などのSlimの出力構文があります。

ただし、ユーザー入力などをそのままHTMLとして出力するとXSSの原因になるので、この機能は注意して使います。


10. コメント

HTMLコメント:

/ これはHTMLコメントです

↓

<!-- これはHTMLコメントです -->

Slim内部だけのコメントなら、

-# このコメントはHTMLに出力されません

です。


11. HTML5のDOCTYPE

doctype html

↓

<!DOCTYPE html>

したがって、基本的なHTMLなら、

doctype html
html
head
meta(charset="UTF-8")
title テスト
body
h1 Hello
p Slimで作ったHTMLです。

という感じになります。


12. 改行とインデント

例えば、

ul
li Apple
li Orange
li Banana

は、

<ul>
<li>Apple</li>
<li>Orange</li>
<li>Banana</li>
</ul>

になります。

つまり Slim では、

「終了タグを書く代わりに、インデントを戻す」

と考えると分かりやすいです。


13. Rubyコード

Slim はもともと Ruby のテンプレートエンジンなので、Rubyコードも書けます。

- name = "Taro"
h1 Hello #{name}

↓

<h1>Hello Taro</h1>

Rubyの式を埋め込む場合は #{...} が使えます。

p 1 + 2 = #{1 + 2}

↓

<p>1 + 2 = 3</p>

14. 条件分岐

Rubyコードなので、例えば、

- if true
p OK
- else
p NG

と書けます。

Rubyの if がSlimのインデント構造に対応します。

 
コメントする

投稿者: : 2026/10/06 投稿先 Ruby

 

マークダウンファイル (.md) をHTML ファイルに変換するには

マークダウンファイル (.md) をHTML ファイルに変換するには、いくつかのコマンドがありますが、ここでは “pandoc” を紹介します。

インストール

sudo apt install pandoc

変換方法

pandoc input.md -o output.html

Github 風にしたいときは

pandoc README.md -s -o README.html

CSSを指定することも可能

pandoc README.md -s --css=style.css -o README.html

 
コメントする

投稿者: : 2026/10/06 投稿先 その他, Linux

 

Firefoxにマークダウンファイル(.md)をドラッグ&ドロップしたが、そのまま表示される

Firefoxにマークダウンファイル(.md)をドラッグ&ドロップしても、そのまま表示されてしまうのは設定が必要なためである。(下記)

  • 「拡張機能とテーマ」の中で「拡張機能」を選び、Markdown viewer を選ぶ。
  • その右側にある … をクリック。
  • 下の画像のように「ユーザーのコンピューター上のローカルファイルへのアクセス」をチェックする。

 
コメントする

投稿者: : 2026/10/06 投稿先 Linux

 

軽量Webサーバ lighttpd

インターネットに公開しないウェブサーバを使う場合、Apache2やnginxは大げさすぎます。

そんな目的のための軽量Webサーバは各種ありますが、Lighttpd は省メモリで数MBで動作するそうです。

今回は、Ubuntu にインストールしてみました。

インストール

apt コマンドで簡単にインストールできます。

sudo apt install lighttpd -y

設定

HTML の置き場は、Apache2などと同じ /var/www/html です。

設定ファイルは、/etc/lighttpd/lighttpd.conf ですが、静的ファイルの配信だけなら特に編集は必要ありません。

状態確認

sudo systemctl status lighttpd

再起動 / 停止 / 起動

sudo systemctl restart lighttpd
sudo systemctl stop lighttpd
sudo systemctl start lighttpd

CGIを使う場合

lighty-enable-mod コマンドを使用して、CGIモジュールを有効にします。

sudo lighty-enable-mod cgi

以下の設定ファイルを編集します。以下に例を示します。

/etc/lighttpd/conf-enabled/10-cgi.conf

設定内容の例

server.modules += ( “mod_cgi” )

alias.url += ( “/cgi-bin/” => “/var/www/cgi-bin/” )

$HTTP[“url”] =~ “^/cgi-bin/” {
cgi.assign = (
“.py” => “/usr/bin/python3”,
“.pl” => “/usr/bin/perl”,
“.sh” => “/bin/bash”,
“.rb” => “/usr/bin/ruby”
“.cgi” => “”
)
}

この例で、CGI の場所は、/var/www/cgi-bin、有効な拡張子は .py, .pl, .sh, .rb, .cgi になります。

 
コメントする

投稿者: : 2026/10/03 投稿先 Linux

 

タグ:

Linux Mint で Alpine Linux を使う

前に Ubuntu で Alpine Linux を動かすために LXD という仮想化ソフトを使ったのですが、このアプリは残念なことに Linux Mint では使えませんでした。(大人の事情による)

そこで代わりになるソフトを探してみたら、Podman というのが使いやすそうだったので、これを使って Alpine Linux をインストールしてみました。

Podman はDocker にコマンド体型がよく似ており、Docker に慣れている人には使いやすいと思います。(Alpine を動かして見る程度なら、Docker でなく Podman で十分です。)

Podmanのインストール

次のようにいつもの apt コマンドでインストールする。

sudo apt install podman

Alpine Linux コンテナの作成

podman run コマンドでイメージ名 alpine を指定すれば、alpine コンテナが作製される。

(例) 最も単純な起動方法

podman run -it --name alpine-test alpine sh

このコマンドの意味は docker コマンドと同じ。alpne はイメージ、alpine-test がコンテナ名。すでに同じ名前のコンテナがあると上書きされてしまうので注意。

イメージには alpine の他、以下のようなものが利用可能。(よく使われるもの)

  • ubuntu
  • debian
  • archlinux
  • fedora
  • python
  • node
  • nginx
  • httpd
  • mysql

ホストとの共有ディレクトリ

docker コマンドと同じように -v オプションで、ホストとの共有ディレクトリを設定できる。

podman run -it --name alpine-test -v ホスト側のパス:コンテナ側のパス alpine sh

例えば、ホスト側の /home/user/Public をコンテナ側の /home/user/public と連携する場合は、次のようになる。

-v /home/user/Public:/home/user/public

コンテナ側でサーバを動かすとき

docker コマンドと同じように -p オプションで、ホストに公開するポートを指定できる。

podman run -it --name alpine-test -p ホスト側のポート番号:コンテナ側のポート番号 alpine sh

例えば、SSHサーバ を公開する場合、-p オプションは次のようになる。

-p 2222:22

これは、ホスト側で次のコマンドで使うことができる。(userはAlpine側のユーザ名)

$ ssh user@localhost -p 2222

ウェブサーバの場合は、このポートのペアは例として 8080:80 などとする。

コンテナの起動

コンテナの起動は docker と同じstart コマンドをを使う。この例では alpine-test というコンテナを作ったので、これを起動するには次のようにする。

podman start -ai alpine-test

コンテナのカスタマイズ

podman start でコンテナを起動すると、管理者 (root) としてル・グイン状態になる。

/ # 

/ での作業は好ましくないので、cd コマンドで /root へ移動しておく。

/ # cd
~ #

ユーザの作成

コンテナには管理ユーザ root しかいないので、普段使いのためのユーザを作る。ここでは ‘user’ とする。

adduser user

user ができたら、ログインしなおすと、/home/user へ移動する。

/ # login user
Password:
Welcome to Alpine!

The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See https://wiki.alpinelinux.org/.

You can setup the system with the command: setup-alpine

You may change this message by editing /etc/motd.

8d7dd2a715f7:$ pwd
/home/user
8d7dd2a715f7:
$

よく使うパッケージのインストール

exit コマンドで管理者の戻り、よく使うパッケージをインストールする。

まず、リポジトリを最新のものにアップデートし、古くなったパッケージをアップグレードしておく。

# apk update
...
# apk upgrade
...

よく使うパッケージのインストールを行う。次の例は、vim のインストール

# apk install vim

(注意) Open SSH サーバとクライアントを同時にインストールするには、openssh’ を使う。

# apk add openssh

インストールされたパッケージ一覧は次のようにすると表示できる。

~ # cat /etc/apk/world
alpine-baselayout
alpine-keys
alpine-release
apk-tools
busybox
g++
gcc
gdb
make
musl-locales
musl-utils
openssh
openssh-client
openssh-server
ruby
vim

システムがインストールしたパッケージも含めて表示するには、apk info を使う。

~ # apk info
alpine-baselayout
alpine-baselayout-data
alpine-keys
alpine-release
apk-tools
binutils
……

タイムゾーンの設定

タイムゾーンをJSTに変更する。

# パッケージのインストール
apk add tzdata

# タイムゾーンをJST(Asia/Tokyo)に設定
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
echo "Asia/Tokyo" > /etc/timezone

日本語環境

デフォルトでは英語環境になっているので、日本語を使えるようにする。

まず、Alpineで使われている標準Cライブラリ(musl libc)用に、glibc相当のロケールパッケージを追加する。

apk add musl-locales

環境変数で日本語・UTF-8を指定する。以下の内容を .profile などに追加し、source コマンドで .profile を実行する。

export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

日本語フォントのインストール

apk add font-noto-cjk

vim の文字化け対策

vim でファイルを編集したら日本語文字列が ….. と表示される不具合が発生した。まず、.=/.vimrc を以下のように編集する。ただし、’set number’ は行番号を表示するオプションなので文字化け問題とは関係ない。

set number
set encoding=utf-8
set fileencodings=utf-8,euc-jp,sjis,cp932
set fileencoding=utf-8

それでも文字化けが起こる場合には、vim 起動時に直接 LANG を指定する。

LANG=ja_JP.UTF-8 vim ファイルのパス名

もし、これが必要なら、.profile 野中などに alias を設定するとよい。

alias vi='LANG=ja_JP.UTF-8 vim'

便利なシェルスクリプト

次のコードは、podman を直接、操作しなくてもすむシェルスクリプトである。イメージ ‘alpine’ からコンテナ ‘alpine-test’ を作成し、次回からはコンテナを実行するようにする。オプションはコード内に記述。ファイル名は ‘~/bin/alpine’ などとしてファイル保存し、実行権をつける。

#!/usr/bin/env bash

# コマンドパラメータに応じて以下のように padman コマンドを実行する。

# 1 パラメータがないとき
# podman start -ai alpine-test
# 2 パラメータが run のとき
# コンテナ alpine-test を削除して、alpine-test を作り直して起動する。
# ホストとの共有フォルダ
#  ホスト: ~/Public
#  ゲスト: /home/user/public
# 3 パラメータが start のとき
# パラメータがないときと同じ (start)
# 4 ラメータが help のとき
# この内容を表示

# コンテナ名・設定
CONTAINER_NAME="alpine-test"
HOST_DIR="$HOME/Public"
GUEST_DIR="/home/user/public"
HOST_SSH_PORT="2222"
GUEST_SSH_PORT="22"

# ヘルプ表示関数
show_help() {
  cat << EOF
使い方: $(basename "$0") [OPTION]

オプション:
  (なし)    コンテナ (${CONTAINER_NAME}) を対話モードで起動します (start -ai)。
  start     パラメータなしと同様にコンテナを起動します。
  run       既存のコンテナを削除し、共有フォルダとSSH用ポート転送を設定して再作成・起動します。
            共有フォルダ: ${HOST_DIR} -> ${GUEST_DIR}
            SSH転送:     localhost:${HOST_SSH_PORT} -> container:${GUEST_SSH_PORT}
  help      このヘルプメッセージを表示します。
EOF
}

# パラメータチェック (第1引数: $1)
case "${1:-}" in
  "")
    # 1. パラメータがないとき
    echo "コンテナ ${CONTAINER_NAME} を起動します..."
    podman start -ai "$CONTAINER_NAME"
    ;;

  "start")
    # 3. パラメータが start のとき (パラメータがないときと同じ)
    echo "コンテナ ${CONTAINER_NAME} を起動します..."
    podman start -ai "$CONTAINER_NAME"
    ;;

  "run")
    # 2. パラメータが run のとき
    echo "既存のコンテナ ${CONTAINER_NAME} を削除しています (存在する場合)..."
    podman rm -f "$CONTAINER_NAME" >/dev/null 2>&1

    # ホスト側共有ディレクトリが存在しない場合は作成
    mkdir -p "$HOST_DIR"

    echo "コンテナ ${CONTAINER_NAME} を新規作成・起動します..."
    # -v で共有フォルダを指定し、:z でSELinux/権限設定を適用
    # -p 2222:22 でSSH接続用のポートフォワーディングを設定
    podman run -it \
      --name "$CONTAINER_NAME" \
      -p "${HOST_SSH_PORT}:${GUEST_SSH_PORT}" \
      -v "${HOST_DIR}:${GUEST_DIR}:z" \
      alpine sh
    ;;

  "help"|"-h"|"--help")
    # 4. パラメータが help のとき
    show_help
    ;;

  *)
    echo "エラー: 不明なパラメータ '$1' です。" >&2
    echo "" >&2
    show_help
    exit 1
    ;;
esac

 
コメントする

投稿者: : 2026/10/01 投稿先 Linux

 

タグ: ,

Ubuntu 日本語環境 Fcitx5 の自動起動

Ubuntu 26.04LTS では fcitx5 が自動的に音にならないようである。(Linux mintはOK)

しかし、次のコマンドで手軽に自動起動が可能になる。

mkdir -p ~/.config/autostart
cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/

Fcitx5の設定

メニュー画面の「システム」の中に 「Fcitx5 設定」があるので、それを使って設定する。

 
コメントする

投稿者: : 2026/09/29 投稿先 Linux

 

タグ: ,

scpコマンドで毎回のパスワード入力を回避する

ローカルマシンでSSH鍵対を作成すると、scp コマンドのパスワード入力を回避できる。

SSH 鍵対を作成

ssh-keygen -t ed25519

ここで、ed25519 は暗号化方式なので正確に入力する。

公開鍵をリモートサーバーに転送・登録する

ssh-copy-id ユーザー名@リモートサーバーのIPまたはホスト名

動作確認

パスワード無しでファイル転送できることを確認する。

scp ローカルファイル ユーザー名@リモートサーバーのIP:転送先パス

具体例

$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Enter passphrase for “/home/user/.ssh/id_ed25519” (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:NxTJ3bde4B9qRYz2pxGfhFlsNPpxj1vPTG0mwsuGrR0 user@hp280g4
The key’s randomart image is:
+–[ED25519 256]–+
| ..o .O+ |
| o..==o|
| . .o=
+|
| . . +BO|
| S o o *=@|
| . = =.@o|
| . E . +|
| + . |
| . . |
+—-[SHA256]—–+
$ ssh-copy-id user@hp405g8.local
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ssh-add -L
The authenticity of host ‘hp405g8.local (192.168.1.102)’ can’t be established.
ED25519 key fingerprint is: SHA256:a18bOLwZNK8rm+xwLrDfUTT1ps+jYCpaMpdiaCkaSX0
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
user@hp405g8.local’s password:

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘user@hp405g8.local'”
and check to make sure that only the key(s) you wanted were added.
$ scp test.txt user@hp405g8.local:$HOME/temp
test.txt

 
コメントする

投稿者: : 2026/09/29 投稿先 Linux

 

タグ: ,

 
WordPress.com で次のようなサイトをデザイン
始めてみよう