Chienomi

Desktop Linuxのいま 2019 to 2020 + 初期セットアップのポイント

2000年を前にまだ実用性に乏しかったLinuxを的にした謎の「Linuxブーム」が訪れ、それ以降Linuxはデスクトップユースにおいても着々とその実力を高めてきた。

2015年には「もはやLinuxはWindowsよりもユーザーフレンドリーなデスクトップ環境である」ということを述べたが、依然として社会的要求がWindowsに限られているということはあり、全くWindowsがいらないという状況ではなかった。

既に実用上何ら問題を抱えていない状態からの5年であるから、もちろん大きな変化はない。 とはいえ、それでも取り巻く環境のほうが結構変わったので「変化なし」というわけでもない。

基本的には環境変化も含め、Linuxとしてはポジティブな状況がつづいている。

概要

特に大きな変化として、クロスプラットフォームアプリケーションが増えた、という点がある。

その最たるものがエディタであり、Windowsでは秀丸エディタ, サクラエディタ, Notepad++などが使われる一方、LinuxではGedit, Kate, Emacs, Vimなどが使われていたが、Atom, VSCode/Visual Studio Codeが流行したことでエディタの問題はかなり解消された。

新しく登場するウェブブラウザも、Vivaldi, BraveといったブラウザはChromiumをベースとし、Linuxでも利用可能だ。 逆に、Linuxで利用できないChromiumベース、あるいはFirefoxベースのブラウザは放置されたり、EOLになってしまうものが多く、なおさらその傾向は強まっている。

ウェブブラウザへの依存性はより強まっており、そのために主要なウェブブラウザがクロスプラットフォームで動作する状況もあって色んなものがLinuxで不自由なく利用可能になった。 側面的には、Linuxで動作しづらい機能(SilverlightやFlashなど)が廃れ、DRMなども整備され、またUA的にLinuxを弾いていたサービス(例えばYahoo!ニュースの動画)がそれをやめるなど、同じブラウザが使える状態でLinuxが不便である状況が解消されているのも大きい。

もちろん、YouTube, AbemaTV, ニコニコ動画, Vimeo, Amazon Video, Hulu, NetflixのどれだってLinuxで視聴することができる。Amazon Musicで音楽を聴くこともできる。

依然として圧倒的にWindowsが多いことに変わりはなく、直接的に影響はないはずだが、サービスやプラットフォームが生き残るにはクロスプラットフォームであることが必須となっているように思われる。「Windowsのみ」「IEのみ」のような制約をかけるものは生き残れていないように見えるのだ。

また、Windowsが新しい不満を抱えている点が、相対的にLinuxのエクスペリエンスをよくしている。 Linux自体の安定性という意味では、Linux5になってから動作不良を起こすことは増えており、ややチャレンジングな方向性に振っているようにも思われる。

パフォーマンス面でも着実に進化しており、エコシステムに関しては多様性はかなり失われたが、その分成熟してきた。

データ的には疑問が多いが、シェアとしては2%未満というところらしい。10%以上であるMacと比べてもまだ差があるが、着実に増え、マイナーではあるが無視できないほどに大きくなってきたとは言えそうだ。

一方で、日本においてLinuxが普及していかない状況もつづいている。 これは、圧倒的にメッセンジャーアプリがLINEに偏っているという点と類似しており、どういったところで日本は日本独自の文化を形成してしまうのだ。

障壁

実際に障壁を感じることはほとんどなくなった。

日本で最も大きいのは当然ながら、Microsoft Officeへの非常に高い依存度である。

従来からLibreOffice(それ以前はOpenOffice)によって実用的に支障なく利用することはできたのだが、それでも実用的な意味を越えてMicrosoft Officeを要求されるいかにも日本的な状況というのが存在しており、業務に至るまでLinuxを貫くには随分と摩擦があった。

しかし現在は、Office.comによる Microsoft公式の web版Officeが登場し、このような問題はほとんどが解消された。 もちろん、ソフトウェアバージョンまで指定したり、内容が全く同じだったとしても(自分が使っていない)web版を使うなどけしからんという人はいるだろうから、全く摩擦を生じないということではないのだが、このようなケースにおいても随分戦いやすくなった。

また、Manjaroでは新たにSoftmaker office suite FreeOfficeが採用され、そのアプローチにはさらに幅が出ている。

ローカルなソフトウェアを除外するならば、どうしてもWindowsでなければ動かないということは減った。 多くのソフトウェアはweb版が用意されるようになり、そもそもアプリケーション自体が(スマートフォンほどではないにせよ)ウェブ用のテクノロジーを利用して作られていることが増えた。

アプリケーションに関して難しい面が残るのは、ゲームと、専門的なソフトウェアである。

ゲームに関しては改善しつつあるとは言えるのだが、Windows専用ゲームは多く、これに関してはWindowsでせざるをえない。 ただ、ウェブベースのゲームも増えているので、「どんなゲームを好むかによる」とは言える。

しかし、「プレイできる」と「Windowsと変わらない」の間には相当な差がある。問題としては、Linux上でビデオカード性能が出ないという問題があるのだ。 大きいのは、ビデオメモリを無駄遣いしているような挙動であり、実際にWindowsでは問題ない程度のピクセル数を書いてもビデオメモリ不足によるフリーズを起こしたりする(例えば、P400ビデオカードでは、FHD6枚分の画面を書いたとき、Windowsでは平気なのだが、Linuxではフリーズしてしまう)。 そのために性能的に過剰なくらいのビデオカードを載せることになるのだが(現在私はRX580のOCカードを使っている)、とてもそんなカードを載せているとは思えないような性能になってしまうのだ。

例えば私はよくDMM GAMESのブラウザゲームをやっているのだが、これが重い。 Flower Knight Girlに関しては、Flash自体はプレイがだいぶしんどいくらい重かったのが、HTML5になってだいぶスムーズになったと思ったら、現在はもうスローモーションのような状態になっている。 Core i5-7500を搭載するThinkPadではまともにプレイできないレベルだ。 あいりすミスティリアは最近は起動の壁がある。

普段のブラウジングではGPUアクセラレーションによる性能差を感じることはないのだが、この手のブラウザゲームでも非常に大きな差が出てしまい、Linuxでゲームしながらというのはそこそこきつい。 もちろん、これはハードウェア構成とプレイするゲームによるので、全くできないというわけではないのだが。

専門的なソフトウェアとしては、まずAdobe製品が挙げられる。 CC for Linuxみたいなものは出ていないので、Adobe製品を必要とする様々な人はLinuxだけでは暮らしていけない。 単に機能だけが必要なのであればLinuxでもかなりカバーできるのだが、本当にAdobe製品の機能が必要であるケース、データ的にAdobe製品が必要であるケース、そしてAdobe製品のプラグインなどを利用するケースにおいては基本的な機能を代用できても仕方ない。

同じようなことは音楽制作にも言え、高機能な音楽制作ソフトウェアや、音楽制作のためのシステムは存在するのだが、さすがにプロの現場で磨かれたソフトウェアほど優れているわけではなく、それ以上に非常に多くのプラグインソフトウェア(市販のものであれ、フリーのものであれ)がLinux上で動作しないことから、本格的な音楽制作には結局のところ耐えない。

また、日本人にとっては割と大きいのがLINEだろう。 LINE for Chromeは通話ができず、LINEアプリをwineで動作させた場合も同様であるため、LINEをする方法自体はいくつかあるにも関わらず、Linux上ではLINEで通話ができない。

ただし、これが実用上非常に大きな問題であるかというと疑問ではある。 LINEはモバイルなしの運用はできないし、だったらデスクにスマホを置いて通話すれば良いではないか…というのも言える。 ウェブカメラの固定場所を探すよりも、スマートフォンアームを使うほうがカメラ面でも簡単だろう。 スクリーンシェアリングができるわてげもないので、通話をデスクトップで行わなければならない必然性はやや乏しい。 もちろん、スマートフォン用のヘッドセット、あるいはUSB Type-C変換プラグを用意しなければいけなかったり、スマートフォン用のアームを用意しないといけなかったりするかもしれないが、Windowsとウェブカムを足した金額よりも安いし、その程度の手間はLinuxerにとってはどうということはないだろう。

また、そもそもLINEでなければならないのかという疑問はある。 LINEの通話品質はあまり高くなく、割と切断もされる。遠距離恋愛中は結構それに悩まされたものだ。 現状、通話が最も安定しているのはTelegramで、古いバージョンのSkype以上の安定感を持っている。もちろん、Linuxデスクトップでも利用可能だ。 親しい間柄であるならば、通話にTelegramを使うことを提案するのは悪いことではないだろう。(ただし、Telegramで正攻法でビデオ通話する方法はないが)

エクスペリエンス

現在Windowsのエクスペリエンスにおいて深刻な問題となっているのが、Microsoftによる強制である。

  • Windows Updateの強制適用 (計算リソースの問題や、状態変更の問題, 及びスリープ解除など電源管理の問題)
  • データの強制送信、及び収集系エージェントの停止不可
  • 再起動の強制 (何らかの処理中であっても)
  • 利用するアプリケーションの強制

これらは、実際に何をするかではなく、意図に反して「望まないことをする」こと自体が「嫌」なのだが、Microsoftはその傾向を近年強め続けている。重要なのは、「ユーザーが嫌だと感じることを、拒否する手段が与えられていない」ということである。

Linuxにおいては基本的にこうした問題がない。 例えばTrackerやBalooなど、収集系エージェントはあり、これらはバックグラウドで多くのリソースを消費したり、問題を引き起こす場合もあるが、少なくともこれらをインストールしない、あるいは停止するという権利があるのだ。

また、非常にスムーズなアップデートが可能であり、基本的には(設定によるアップデートアプリもあるが)アップデートは任意のタイミングで行うことができる。 アップデートそのものも何をしているのかわかりやすく、中断も容易。シャットダウンや次回のブートを妨げることもない。

また、Windowsはストアアプリに関しては自動的にアップデートされるようになったが、Linuxの場合はそうしたアップデートの対象になるソフトウェアがより広範である。

パフォーマンスを損なうという点について、頻繁に使っている人は気にならないかもしれないが、そこまで毎日長時間使うわけではない人にとっては、唐突にリスポンスが悪くなったり、バッテリーを消費したりするわけで、シチュエーションやスケジュールを台無しにしてしまい、ユーザーがコントロールできない要素が大きい。

WindowsはWindows 10になって連続的にバージョンアップするローリングリリースとなった。 Linuxは元からローリングリリースのディストリビューションとポイントリリースのあるディストリビューションに分かれているが、近年はArch Linux, Manjaro Linux, Gentoo Linuxなどローリングリリースのディストリビューションの人気が高まっているほか、人気の高いディストリビューションであるopenSUSEからもローリングリリースのTumbleweedが登場している。

最近のWindowsは何らかの理由でより多くの電気を使うようである。私が同一マシンでLinuxとWindowsを切り替えて使っていると、Windowsのほうが総じてファンがよく回るので、熱を発している=電気を使っているということになる。 コンピュータのリソースを多く使うことそのものは悪いことではなく、無駄なく使い切っているということであればむしろ歓迎できることではあるのだが、アイドリング状態でも同様であり、大したことをしていなくても多くの熱を発する。

一方、依然として激しいタスクにおいてはCPUをなかなか100%使ってくれないので、効率が良いとは言いにくい。 それ以上にメモリを使い切ろうとしてくれないのが痛い。IOパフォーマンスにも差があるのでなんとも言い難いが、純粋にCPUとメモリ、そしてIOを求めるようなプログラムにおいては、Linuxのほうが簡単に高いパフォーマンスを発揮できる。

私は稀に、例えば音楽制作であるとか、ゲームであるとか、あるいはWindowsのサポートやWindowsを使用した記事を書く場合などにWindowsを起動しているが、あまりにも苦痛でやってられないというのが正直なところである。

Windowsユーザーにとっては知識のアップデートは必要かもしれないが、快適性は段違いだ。

小さなことだが、ボリュームアプレットがホイールスクロールで回せること(XFceのボリュームアプレットはできないが)や、Altドラッグでウィンドウ移動が、Alt右ドラッグでリサイズできることがかなり大きく、こうした違いもエクスペリエンスへの影響が大きい。 また、さらに環境を限定するが、Cinnamonはマルチディスプレイ環境における全画面の扱い方が非常にうまく、マルチディスプレイユーザーにとってはCinnamon環境が非常に快適であり、Windowsだと(そして他のデスクトップ環境だと)ストレスを感じるようになる。

ディストリビューション

Ubuntuは人気が低下し、ユーザーも減少しているが、依然として割合としては高い。 Debianと二大巨頭のような状態はつづいている。

デスクトップでも人気の高かったCentOSは、ベースとなっているRedHat Enterprise Linuxのニューバージョンの遅れと、CentOS自体のゴタゴタのため、大きくユーザーを減らしたようだ。

その他人気が高いディストリビューションは、Ubuntu/DebianベースでユーザーフレンドリーなLinux Mint, MX Linuxがある。MX LinuxはDebianベースで、シンプルで使いやすいディストリビューションを目指している。方向性としてはLinux Mintと似ている。

MX Linuxに抜かれるまでDistrowatchで1位をキープしていたManjaro LinuxはArch Linuxをベースとして、Linux Mintのようなユーザーフレンドリーな機能追加・仕様変更を行っている。 Arch LinuxはLinuxに関する理解があることを前提とするが、Manjaro Linuxは誰にでも扱いやすい。 私もManjaro Linuxになってから、インストールしてから長く使いつづけることができるようになり、Manjaroを使い続けている。

Solusはパッケージ管理システムやデスクトップ環境が独自のもので、特色溢れるディストリビューションだ。

プライマー

どのような条件を設定するかにもよるが、例えば私が普段使っているManjaro Linux Community Edition Cinnamonだと仮定する。

その導入手順はMimir Yokohamaで紹介しているが、いくらか難しい点はあるものの、ポイントさえ抑えておけば全体としては難しくない。その意味は記事を読んでもらうのが早いだろう。

導入までの到達に必要なのは、知識ではない。 説明をしっかり読み、理解した上でひとつひとつ着実に実行することである。 つまり、説明を読まない人や、読むだけである人には難しいだろう。

インストール後に関して言えば、Manjaro Linuxは日本語入力にひと手間いるということを除けば難しい要素はあまりない。 総じて英語が読めたほうが良いというのはあるのだが、Manjaro Linux Community Edition Cinnamonの場合、最初からロケールを日本語にしていれば日本語表示になるため、その問題もあまりない。

いずれにせよ、表示されている文字をちゃんと読む人であれば全く難しいところはないだろう。 アプリケーションの起動も「メニュー」をクリックすれば起動できるわけだし、メニューを開くと検索ウィンドウもある。

「システム管理」のカテゴリには「ソフトウェアの更新」「ソフトウェアの追加と削除」もあり、素直に使えば困ることはないだろう。 むしろ、最近のWindowsは目的のソフトウェアを探すための手立てが少ないので、こうしてカテゴリ分けされており、なおかつ各項目に説明がつくことで初心者にもより触りやすいだろう。 Windowsのスタートメニューにはアプリケーション以外も含まれるという問題もある。

これについて、Ubuntuの場合、アプリケーション一覧はアプリケーションの名前が表示されるだけで、アプリケーションを探索する手段を与えられていない(ソフトウェアの追加と削除から探せないこともないが)ため、Windowsよりもエクスペリエンスに劣る。これはGNOMEでも同様である。

事前知識なしに放り込まれたときの手立てという意味ではWindowsよりもLinuxの環境のほうが(もちろん、どのような環境を選択するかにもよるが)優れている。実際、ほとんどの場合Windowsを使えるユーザーにLinux環境を与えたときに、使いようがないほど困るということはないように見える(これは、私の活動上の観測である)。

大きな違いとしてファイルツリー構造が違う(ドライブレターがない)という点があるが、現在のWindowsユーザーは特にドライブレターを意識することもなく、そもそもC:\を開いたこともないという人も多い1ので、単純にファイルマネージャ上からの操作という意味ではホームディレクトリ、ドキュメント、写真、ビデオといったディレクトリが提示され、USBメモリを挿せばUSBメモリーが項目として追加されるというのは、特別何かを意識する必要もなく、GUI上で直感的に使えるはずだ。

Nemo(Cinnamonファイルマネージャ)の項目

最近はWindowsで親しまれているアプリがOSSでLinuxなどのオープンなエコシステムに由来することも増えており(e.g. Mozilla Firefox, Chromium/Google Chrome, VLC Media Player, MPlayer/SMPlayer, Atom Editor)、Windowsユーザーが戸惑うことは少ないだろう。

逆に、Macは一般に直感的でビギナーでも使いやすいと言われているのだが、「特定のファイル(場所は分かっている)にアクセスしたい」「端末を開きたい」など基本的なことがいつもできなくて躓くくらいだ。Dockに出ているものを操作することはできるのだが、できることがあまりにも限られていてうんざりする。 この体験からすれば、明確にやりたいことがある人にとって、Macがeasy stepだという主張は私の直観に反する。

だから、いくらかの条件はつくものの、プライマーという観点から言えば今やLinuxは極めて適していると言えるのではないだろうか。

初期セットアップのポイント

ここでは、パフォーマンスを損ねないよう、ミニマル方向でセットアップするという観点から述べる。

基本的なことはミニマルシステムLinuxにおいて述べているが、その記事よりはより一般的な利用を想定した内容であり、インストール後どうすればいいのかわからないユーザーのためのアドバイスになる。

ローカライズ

とりあえずローカライズを必要とする場合、ディストリビューションごとの手順においてローカライズを行う。

Ubuntu日本語Remixのような例外を除けば、基本的にはlocalized versionの品質はそれほど高くない。 localizationという観点から言えば、openSUSEなどごく一部のメジャーディストリビューションは特別な何かをする必要がない。意外なところではMageiaもそういう仕様である。

Manjaro Linuxは表示面では最初からある程度セットアップされている上に、パッケージも揃っており、ロケール追加の必要もないため比較的容易である。 しかし、IMEを必要としない言語圏で開発されているディストリビューションの常ではあるが、IMEはインストールが必要なだけではなく、設定も必要になる。

Arch Linuxはロケールが最初から揃っていたり、自動的に生成されるわけではないが、インストール手順の中でロケールの生成を行うため、そこまで難しいわけではない。ちゃんと説明通りにすれば良い。

PCLinuxOSはもう少しむずかしい。Localization Managerによって明示的にロケールを生成する必要がある。 手動でのロケール生成手順があるものは、ディストリビューションによって流儀が異なるという問題もあるほか、そもそも「ロケールを生成する」ということの意味が初心者にはわかりにくいからやや壁である。

最も難しいのはロケールとして日本語が準備されておらず、IMEがパッケージとして存在しないようなディストリビューション(例えばNuTyX)である。しかし恐らく初心者がそのようなディストリビューションに手を出すことは、まずないだろう。

フォントについては独立した記事で述べている通りである

IMEに何を選択すべきか、ということについてだが、個人的な意見としては、最もトラブルが少なく、使い勝手が良いのはFcitxである。 UIMは軽いのだが、一部のアプリケーションで「ー」が「ろ」になるという(かな打ちでしか発生しない)問題が残っており、一部キーバインドがうまく動かなかったり、機能も乏しく自由度も低い。Fcitxは安定しており、quick phraseなどの便利なプラグインも多い。

使うことが明らかなアプリを入れる

愛用のアプリであるとか、そのコンピュータの使用目的上必要なアプリであるとかをまず入れていく。

例えばChromiumを愛用しており、Firefoxは使用しないといったことであれば、Firefoxを消してしまっても構わない。

過剰にゴテゴテするのは避けたほうが良い。 例えば、ブラウザにたくさん拡張機能を入れている人は、その拡張機能に問題が発見されていたり、あるいはブラウザ自体の変更によって拡張機能を必要としなくなっていることを見落としていたりしてはいないだろうか?

既に適した方法が存在する場合により多くのアプリを入れることで解決しようとするのは悪手だ。

フォントやテーマを設定する

Windowsでは外観的な変更に自由度がすっかりなくなってしまったが、Linuxでは今でも有効だ。

特にフォントの設定に関しては、論理フォントを日本語にしておくなどひと手間かけておく必要がある。 これは、基本的にはFontConfigの設定ファイルで行うが、KDE Plasmaに関しては設定メニューから選択できる。

テーマはたくさん入れていると動作に支障をきたす場合もある。選択のためにたくさん入れたら、使わないことが決まったものは消してしまったほうが良い。

環境を構成するアプリの追加と設定

私の場合は、

  • Ruby
  • Zsh
  • grml’s Zsh config
  • Zsh theme powerlevel9k
  • いくつかのZshプラグイン
  • Awesome font
  • My browser profile chooser
  • Vim (+Plugins)
  • EncFS
  • sshfs
  • Mercurial

だが、Manjaroにおいて最初から入っているというだけの話なので、場合によってはターミナルエミュレータやOpenSSHをインストールするということもあるだろう。また、Manjaroは最近F2FSを最初からサポートしているので入れていないが、こうしたファイルシステムサポートの追加も必要かもしれない。

あるいはgvfs-googleなどを必要とする場合もあるだろう。

端末環境のセットアップを中心に考えているが、ユーザーフレンドリー指向なディストリビューションならば基本的なものは一通り入っている場合が多いので、今必要としているのでなければ焦って入れる必要はない。

設定に関しては、私はいくつかのアプリケーションにおいて設定ファイルを共有しており(例えば.zshrc)、これを複製する以外ではメールクライアントや日本語入力関係の設定程度である。 ただ、割と大きな点としてSSH回りの設定がある。これは後述する。

基本的なアプリを追加する

どのような用途であれよく使うアプリケーションというものもある。

ドキュメントビューワ, メールクライアント, 画像ビューワあたりは厳選したほうが良いだろう。

ドキュメントビューワに関しては、印刷で綺麗に出せるのはEvinceであり、非GNOMEユーザーであればXReaderも候補になるだろう。

ただし、qpdfviewは「書籍読み」ができるというメリットがある。 見開き表示ができるだけでなく、左右反転が可能で、さらに「1ページ目はカバーページの見開き」(つまり、1と2ページではなく、2と3ページを並べる)もできる。書籍PDFを持っている場合はqpdfviewもぜひ入れたいアプリである。

画像ビューワは単独のイメージを見るならばViewniorがお勧めだが、ディレクトリ上に画像数が多い場合はちょっと重い。 画像を並べるタイプの画像ブラウザ(写真マネージャ)は選択肢が少いが、Gwenview(KDE App)とxnview, Pixなどがある。

エディタに関しては、Leafpadを入れておくべきである。 Leafpadは日本語文字エンコーディングの自動判別機能がある。

Leafpad, Gedit(Xedit), Mousepadは補完関係にできる。 これは、文字エンコーディング、ファイルサイズ、1行の長さによってうまく開けないという問題が生じることがあり、この3種類から選択できることは有力である。

SSH関係

マシンが1台しかない場合はあまり必要ないかもしれないが、複数台ある場合はネットワーク越しに連携できると便利だろう。GitやMercurialを使ってマシンを限定せずに作業を進めることも可能だし、ファイルのコピーや共有も簡単だ。 そのためにSSHを使いたい。

事前にOpenSSHをインストールしておくこと。ディストリビューションによってはクライアントとサーバーが分離されている。

まずはID鍵を作っておこう。 これは、ローカル環境で広く使うことを想定し、パスフレーズ保護することを推奨する (外部に出す鍵は別の鍵として分けたほうが良い)

$ ssh-keygen -t ed25519

これで ~/.ssh/id_ed25519.pubの内容をログインしたいターゲットの~/.ssh/authorized_keysファイルに追記する (なければ作る)。

一方、接続を受け入れる側は、標準の(ディストリビューションによっては標準ではないかもしれないが)設定ファイルでは不安が大きい。だから、まずは/etc/ssh/sshd_configに次のように記述する。

AddressFamily inet
AuthenticationMethods publickey
DenyUsers *

これで、

  • IPv4のみで接続受付
  • 認証はpublickeyのみ
  • 誰もログインできない

という設定になる。これで完全に安全な設定だが、これではSSHサーバーは機能しない。 (IPv4に限定したのは、この先で面倒を避けるため)

そこで、ローカルネットワークにおいてのみroot以外でログインできるようにする。

Match Address 127.*.*.*,192.168.*.*
  DenyUsers root

IPv6も有効にする場合、アドレス指定は次のようになる。

Match Address 127.*.*.*,192.168.*.*,::1,fd00::/8,fe80::/10

しかし、IPv6ではサイトローカルなホストからグローバルアドレスでアクセスされる可能性があるため、そのあたりの手間を回避するためにこの説明ではIPv4に限った。

また、このアドレス指定について、ツッコミを入れられる人はどのアドレスを指定すべきかということは認識していると思うので、この内容はそういう人のためのものではない(例えば、他のローカルアドレスを示す必要は、この記事上はない)。

ついでに、「パソコンで」(つまり、スマートフォンやタブレットなどではなくて)あり、Intelであれば最近のCPUならばCore-i3以上のプロセッサ(Atom/Celeron/Pentiumでない)で、AMDでは最新のすべてのパソコン向けプロセッサでAES-NIをサポートしており、/etc/ssh/ssh_configで次のようにAESのみを使用するように設定することでSSHのパフォーマンスを向上させることができる。

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc

これは潜在的に3des、あるいはchacha20-poly1305しかサポートしていないSSHサーバーとはやりとりできなくなるが、そのようなケースは少ないだろう。 同じ設定はsshd_config側にもあり、これでサーバー側の要求としてAESを使わせることもできる。AES-NIを搭載していないコンピュータから接続することはないと思うのであれば2サーバー側で指定しても構わない。

それではSSHサーバーを起動しよう。次の例はSystemdを採用したマシンのものだ。

$ sudo systemctl start sshd

問題なければ永続化しよう。

$ sudo systemctl enable sshd

使う

使っていれば自然とセットアップも進む。 とにかく使うことがなによりなのだ。


  1. Windows 10の場合、Documents, Pictures, Videosの3フォルダがユーザーフォルダとして扱われ、これ以外で見るところといったらせいぜいDownloadsだけという人が多い。だから、システムファイルシステムルートどころか、ユーザーディレクトリ(%HOMEPATH%)すらも見たことがない人が多い。↩︎

  2. AES-NIを搭載しているプロセッサではAESで暗号化すると良好なパフォーマンスを発揮する。しかし、AES-NIのような専用チップがない場合、AESは重い処理であり、chacha20-poly1305を使うことで軽量化できる。↩︎

Wrote on: 2019-12-21 21:01:00 +09:00