SSブログ

LinuxをWindowsで始める 6 [Linux]

Linux初心者のためのお勉強で前回はシェルの事を書きました。
 http://miff.blog.so-net.ne.jp/2018-02-25-1
まだ書き足りてない部分はあるのですが、出てきた時に順次説明していきます。


基本的なところを改めて見ていくと自分も探求心に目覚めてしまいがちです。Linuxはある程度できる実力はあるものの、知らないことはいくらでもあるものです。というか、自分が知っておくべきレイヤーを知っていればいいというのがコンピュータ的には正しいのでしょうが、何でこれがこう動くんだろうという事を考えだすと気になってしまうところはあります。

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

  • 作者: 武内 覚
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/02/23
  • メディア: 単行本(ソフトカバー)


最近出たらしいのでこれなんか読んでみようかなと思ったり。

ただ、この本はBoWでLinuxを始めようという初心者向きではありません。もっと実際の動作に近いところの挙動を知っておいた方が良いのは確かです。最近フィジカルな本屋さんに出向かないので、初心者によい本がどんなものなのかを知ることがあまりできないのですが、個人的な意見として何かを目的としたものが割と身に着くんじゃないかと思ったりもします。

というのも、自分が読んできた本で一番役に立った本が玄箱のLinux化の本だったからです。玄箱というのはNASなのですが、そこに無理矢理Linuxを突っ込んで動かしていろいろしてしまおう、というものでした。ハードウェア的にも製品上の違いは皆無と言えたし、DynamicDNSを使って固定のドメインでWebサーバを立てるというお題が設定されていたので分かりやすかった。

それまでLinuxのインストールブームが来て、ある程度の操作はわかったつもりでも、実際に何をするという時点になると大して何もできない、という状態になっていました。結局何ができるという事が見えてこなかった。オペレーションとしてコマンドを扱うことができても、サービス一つ作り出すことができないというのが実際でした。

手詰まりの状態から実際に使える所まで持っていってくれたのが、玄箱のハックだったりしました。構成が色々になりがちで例外が出がちなLinuxですが、コマンドをきちんと打ち込めば間違いなく動くという点については大変助かりました。ただPowerPCであるがために、aptのバイナリなどが限られていたので、深く突っ込もうとすると自分でコンパイルしないといけなくなるところは結構鍛えられたと思います。

今は./configure && make && make install なんてしなくていいし、依存性もAPTやYUMなどのパッケージマネージャを使っていれば問題ないけど、一度はマイナーなソフトや新しいnightly buildを使ってみるというのも悪くないとは思います。結局、今お気楽に使えているのは、きちんとコンパイルしてくれているメンテナの人などの苦労があっての話でしょうし。まぁそれをするのもいろいろ慣れてからの方がはまりにくくて済むし、結局最後まで遂行できてなんぼなので、それまでそれなりの修行を積んだ方が良いとは思います。





そんなところで、今お勧めの本はよく分かりません。ただ、インターネットで調べられる情報は往々にして散逸してしまっているので、一つの事を調べるのに向いていても体系的に知識を身に着けるのには向いていません。だから、自分が読んでしっくりする本は何冊か買っておいた方が良い気はします。

良いと思うのは、VirtualBoxなどの仮想化を扱った本があれば、それを買うのもいいと思います。良い本があるかどうかは別にして、仮想化でハードウェア部分が固定されるので、そこいらへんで変なはまり方をしないで済むという事はあります。あまりハードウェアが新しすぎてNICのドライバが追い付いてないとかあっても、自分でネットワークから引っ張ってきて入れるとか面倒ですしね。最近はそんなにないのかもしれないけど、WindowsはきちんとマザーボードにDVDが付いているというのに。

何にしてもOracleが有料にしない限りはVirtualBoxはタダですからね。お金がかからないというのは、初期の学習者にとって強い味方ですよね。正直、ライセンスとか買わないといけないといけなくなると、仕事でやるようになってからでいいかと思ってしまうのが落ちです。

https://www.virtualbox.org/wiki/Downloads

ハードウェア系の事も気にしているのなら、一時期やたらとLinux系の雑誌に載っていたRaspberry Piなんかもいいかもしれません。基板自体持ってないから使ったことないですが、書籍も出揃っているとは思いますしホビー的に入るのも悪くないでしょう。


Linuxにかかわらず初期の学習としては、何をしているのかわかることと、やった結果が安定していることは大事だと思います。裏で何しているかわからない上に、直接何やってるのかわからないのは不幸としか言いようがありません。特に初心者は自分で原因を調べるという事自体が困難すぎるので、基盤が安定しているというのはなくてはならないものだと思います。

話の流れとしては、VirtualBoxを入れるんだなと思っている人もいるかもしれませんが、まだまだBoWでじっくりやるべきこともあるので、UbuntuをVirtualBoxに入れるのは先の話とします。結局入れ方までやらないかもしれませんが、事前にBoWでできる事はやっておいた方が良いと思います。ステップアップする方法としては悪い方法ではないでしょう。





今回は実験としてSSHが外部からつなげるか、という事を確かめておきたいと思います。というのも、サーバ目的に使うとすれば、外から接続して設定したりサービスを提供してもらったりするのが常となってくるので、外部と通信するために立ち上げっぱなしのプログラムが必要となってきます。ずっと常駐しているソフトをデーモンといったりしますが、今回はSSHデーモンがBoWで動くかどうかを確かめてみたいと思います。これができればWindowsの外部にWebサーバなどを見せたりできますし、BoWをWindows内の出来事だけで終わらせることなくLinuxを使うことができるのです。


説明が後先になってしまいますが、sshdを正常動作させるのには失敗するので、これからの操作はする必要は特にありません。そこから動く状態にもっていくのは初心者にはしんどいでしょう。というか自分も最後までできていないし。

まずSSHDを入れます。SSHクライアントは元から入っていて、他のサーバにはつなげにはいけましたが、他のマシンからつなぐという事は確認していません。そして何もしていない状況ではデーモンは立ち上がっていません。それはps axコマンドで見られます。その見方は後にしてとりあえず、フルセットのSSHのパッケージをaptで入れます。

sudo apt install ssh


自分のパスワードを入れてインストールします。これだけではデーモンは立ち上がっていないので、別途立ち上げる作業を必要とします。

sudo /etc/init.d/ssh start


ちょっと古臭いコマンドかもしれませんがこれでも立ち上がるのでいいとして、実際にSSHデーモンが立ち上がっているかどうか確かめます。

$ ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 /init
    2 tty1     Ss     0:01 -bash
  157 ?        Ss     0:00 /usr/sbin/sshd
  160 tty1     R      0:00 ps ax


psというコマンドは現在動いているプロセスを見るためのコマンドです。sshdというプロセスが動いているので問題ありませんね。まぁここまでは動くとは思っていました。ここから先です。まずはBoWから自分につなぎに行きます。

$ ssh hoge@localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
《中略》
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Permission denied (publickey).

自分から自分につなぎに行くのは、なんだかうまくいっていないみたいですね。
.ssh/authorized_keys っていうのができていないっぽいですね。
そもそも自分から自分へというのがいけないのかもしれないけど、普通のLinuxだとできていたし。

色々やってみたもののうまくいかないのは同じでした。何の設定が悪いのかな。普通のLinuxだとデフォルト状態でつなぎに行けていたのに。そもそもデーモンも勝手に立ち上げてくれたりしていたので、普通にLinuxをAPTで使っているのとは違うみたいですね。


代わりにWebサーバを立ち上げてみたらうまくいきました。デーモンを外から見ることはできるみたいですね。そういう意味では普通のLinuxサーバの開発検証環境として使えそうです。一応やったことを書いておきますね。

sudo apt install apache2
sudo /etc/init.d/apache2 start

んでBoWを使っているそのままのマシンで、Webブラウザからhttp://localhostを見る。
そうすると以下のような画面が出てくるはず。
apache2.png
WebサーバApache2が立ち上がっていました。別にWindowsのセキュリティが邪魔したりとかしていませんね。SSHDは設定が足りないとかしてないとかそういうもので、BoWでは動かないという訳じゃなさそうです(わからないけど)。

そんなわけでBoWでも外に晒すことにおいても大丈夫そうです。これは大事な事かな。正直いろいろな事が邪魔して外と交信するサーバ関係がだめかもしれないと思っていたけれど、特にWindows側で何の設定もすることなく使えそうです。これはいい傾向。できる事が制限されないのって素敵です。

今回は検証の回になってしまいあまり覚える事がなかったですが、BoWで色々できる事はわかりました。特に実際のLinuxを使わなくても何とかなることが多いってわかっただけでも収穫なのです。次回はもう少しみんなの勉強になることをしたいですね~。

http://miff.blog.so-net.ne.jp/2018-03-11

タグ:Linux入門
コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0