Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
UNIX(Linux)
入門編
- UNIX(Linux)とは
- ディストリビューションとは
- CentOSとMacOSとCUIについて
- 仮想化ソフトウェアを使ったCentOSのインストールとMacOSのCUI環境について
- ログインとrootユーザーとシャットダウン等について
- コマンドの構造と注意点について
- ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について
- 各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について
- ちょっと高度なディレクトリの移動(cd)とパスについて
- 『ls』コマンドの応用(1)とドットファイルについて
- 『ls』コマンドの応用(2)
- タブキーを使った入力補完について
- ディレクトリの作成方法(mkdir)について
- ファイルの簡易作成(touch)とファイルについて
- 標準入出力とリダイレクション(>と>>)を使ったファイル生成とechoとcatについて
- ファイルとディレクトリの削除(rm)について
- ファイルとディレクトリのコピー(cp)について
- ファイルとディレクトリの移動と名前変更(mv)について
- viエディタとは
- viの基本的な使い方(1)
- viの基本的な使い方(2)
- ターミナル(sshとTera Term)を使ったリモート操作について
- ソフトウェアのインストール方法(yumとパッケージ管理ツール)について
- ユーザーの概要と確認と追加と切り替え(adduserとsu)について
- ユーザーのパスワードと削除と更新と管理者権限での実行(passwdとuserdelとusermodとsudo)について
- グループの概要と確認方法(groups)について
- グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について
- パーミッション(権限)について
- パーミッションの設定方法(chmodとchown)について
- トップページ
- UNIX(Linux)入門編 - ターミナル(sshとTera Term)を使ったリモート操作について
ターミナル(sshとTera Term)を使ったリモート操作について
みなさまどーもでございます。続きまして今回はリモート操作についてでございます。
これまでCUIなCentOSを色々といじいじしてきたわけなんですが色々とやりづらい感じがしてるかと思います。そしてその中で特にやりづらいと感じる部分ってコピペ部分じゃないかなって著者は思うわけでございます。CUIなOSだとマウスがないため「マウスカーソルでぐいっと選択してそれをコピーして貼り付ける」っていつもしているであろう動作が全く出来ないんですね。
あとこれまでの記事を蹂躙している方だとCentOSをエミュレーターで動かしているため、皆様のお手元のPCのOSとは別世界になっているってのもかなりやりづらい感じがしてしまっているかと思います。例えば当記事で掲載されているテキストとかをコピペしようとしても全然無理だしそういった事はさっぱりできないわけなんです。
「こんなやりづらい中で作業している世間の先輩プログラマーさん達はすげえぜ!(*'ω'*)」って思ってしまうかもしれませんがご安心下さい、プログラマーってやつは凄腕になればなるほどぐうたらな奴が多い傾向があるので「作業しづらい環境」というのは絶対に避けて通りますし全力で淘汰するものでございます。
じゃあこの状況をどうやって淘汰するのかというとここで登場するのがリモート操作、『SSH』(Secure Shell)ってやつになります。『SSH』とはコンピューターを暗号化をかませつつリモート操作するために用意された通信規格の事で、この『SSH』を皆様が普段愛用しているであろうWindowsOSとかMacOSとかのマウスとかが使えるGUIなOSの中で動かすことでコピペが簡単にできたりマウスを使って色々な操作をしたりってことができるようになります。
実はCUIベースのOSを0から組むときってそのOSがインストールされているマシンを直接触るのはインストールした最初の段階だけだったりするんですよね。あとは全てリモート操作だけでいじいじしてしまうってのが一般的な手法になります。インストールした瞬間っていうのはネットワークの設定が出来てないわけなので最初の段階は仕方ないのですが残りは全てリモート操作だけでなんとかなります。
んで「リモート操作ってどうやるの?」ってお話なんですがまずUNIX系OSでは『ssh』コマンドっていうのが用意されています。『SSH』を使って通信するので『ssh』コマンドっていうそのままのネーミングでございますね。最近のMacOSもUNIX系なので『ssh』コマンドを使う感じになります。多分『ssh』コマンドは最初からインストールされているはずなので別途インストールする必要はないはずです。詳しくは後述しますね。
そしてWindowsOSはいくつか『SSH』通信を使えるソフトウェアがあるのですがその中で有名なのはダントツで『Tera Term』(テラターム)です。『Tara Term』は寺西高さんが作ったソフトウェアで、著者がまだ若くてピチピチでグラマー美人だった頃から存在しているかなり歴史のあるソフトウェアでございます。あ、もちろん言うまでもないですが著者は現在でも若くてピチピ
著者が若い頃はまだLinuxが普及していなかったため元祖UNIXを使っていたのですがその頃から使っていた感じになるので著者も大変お世話になっているソフトウェアでございます。『Tara Term』は昔のパソコン雑誌で色々と紹介されていたのでおそらく1990年代からPCを触ったりプログラミングをしていた方は「おおー懐かしいー(*'▽'*)」って思って頂けるのではないかと存じます。
(´-`).。oO(昔はネットがそれほど発達してなかったので情報をどこで集めるかというとパソコン雑誌が多い感じでございました...)
(´-`).。oO(あの時代はあの時代で中々良いものでございますね...)
というわけで早速『SSH』でリモート操作できるようにCentOSの設定をしていきましょう。
ちょいと最初に注意点なのですがこれまでの記事を蹂躙している方はVirtualBoxを使ってCentOSを動かしていますよね。なので現実のマシンにCentOSを入れてリモート操作する手順とは若干異なるのですがポイントを抑えれば同じようなノリでいけますのでその辺も合わせて解説していきたいと思います。
では最初にVirtualBoxを立ち上げて下さい。んでCentOSはシャットダウンした状態で行いますので現在CentOSを動かしている場合はバシッと電源OFFにしちゃいましょう。電源OFFにするには『poweroff』コマンドをバシッと叩けばOKです。
そしたら以下の画像を参考にVirtualBoxの初期画面にある『グローバルツール』をクリックして下さい。
すると画面が切り替わると思いますのでその中の『ホストネットワークマネージャー』をクリックします。WindowsOSとMacOSで多少画面が違うかもですがどこぞにある『ホストネットワークマネージャー』をクリックしてしまえばOKです。
そしたらその中の『作成』ってやーつをクリックして下さい。
そしたら『vboxnet0』って名前の謎の項目が出来上がりましたね。
そんで以下の画像を参考に『アダプター』の中の『IPv4 アドレス』ってやつを『192.168.56.1』、その下の『IPv4 ネットマスク』を『255.255.255.0』に設定しましょう。もし『アダプター』画面が出ていなかったら『vboxnet0』なんて書いてある部分をダブルクリックとかすると開くはずです。
ちなみに『IPv4 ネットマスク』は構造上『255.255.255.0』で固定なのですが『IPv4 アドレス』はローカルIPならばなんでもOKでございます。多分特別なことをしていない限りは『192.168.56.1』は空いてると思うのでそのまま使えると思いますが、もしダメそうだったら『192.168.56.10』とか『192.168.56.100』とか色々と試してみるとどれかは使えるはずです。
んでWindowsOSのVirtualBoxだと最初から以下のように
『作成』をクリックせずとも最初からネットワーク設定が居たりする場合があります。これそのまま使えるので最初から用意されてるやつを使ってしまってOKです。多分『IPv4 アドレス』も『192.168.56.1』になっているはず...です。
これでエミュレーターのネットワークの構築はOKです。次に先程作ったネットワークを有効にする必要がありますので一旦いつもの初期画面に戻ります。いつもの初期画面に戻るには以下の『マシンツール』って部分をクリックすればOKです。
そしたら以下の『CentOS』って部分を右クリックして出てきたメニューの中の『設定』をクリックします。
すると設定画面が開きますので
その中の左メニューの『ネットワーク』をクリックして
いくつかあるタブの『アダプター2』って部分をクリックすると以下の画面になりますので
その中の『ネットワークアダプタを有効化』にチェック、その下のセレクトボックスは『ホストオンリーアダプタ』、その下の名前ってやつには先程作ったネットワークの名前を選択して下さい。以下のような感じですね。
そしたら更にその下の『高度』ってやつをクリックすると以下のように画面が開く感じになるのですが
この中の『MACアドレス』ってやつをメモしておいて下さい。あとで使います。
続いて今度は『アダプター1』って部分をクリックして『高度』って部分をまたクリックして
その下部の『ポートフォワーディング』ってやつをクリックして下さい。そうすると以下の画面が出てきますので
その右上の緑色した『+』っていうようなアイコンをクリックして下さい。ここでポートの設定ができますので以下のように
名前はそのまま、プロトコルはそのままの『TCP』、『ホストポート』は『10022』、『ゲストポート』は『22』に設定します。
この『ホストポート』は適当な数値でOKなので『10022』っていうのは著者がただ無難な番号を入力しただけでございますが特に理由がなければ同じように『10022』にしちゃってください。重要なのは『ゲストポート』ってやーつですね、これは必ず『22』に設定するように下さい。
ちょっとよく分からんぜーって方の為に簡単に解説しておくとPCの世界で一般的に使われている通信には『ポート番号』っていう番号を付与して通信を受け取った際に実行するソフトウェアを振り分けたり出来る仕組みになっているのでございます。今回の場合は『ssh』を行う際のポートを『ssh』のデフォルトの設定である22番に設定しているような感じになりますね。
これで準備はOKなのでいつもどおり『CentOS』を立ち上げて『root』さんでログインして下さい。
ログインできたら『/etc/sysconfig/network-script/』のディレクトリに移動します。
[root@localhost ~]# cd /etc/sysconfig/network-script/
『/etc/sysconfig/network-script/』の内部にはディレクトリの名前通りネットワーク系の設定ファイルが居る感じになるのですが、ちょいとそのまま『ls』コマンドをバシッと叩いてみてください。するとずらずらーっといくつかファイルとかが存在しているかと思いますがその中で『ifcfg-eth0』って子が居ると思うのでその子を見つけて『vi』で開いちゃってください。
[root@localhost network-scripts]# vi ifcfg-eth0
すると以下のように
DEVICE=eth0 HWADDR=08:00:27:39:61:B9 TYPE=Ethernet UUID=73b152f0-1c8e-4375-a6e4-6742ac92b3e4 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp
最初からネットワーク構築に必要な情報が書かれているのですが上記の中の『ONBOOT=yes』って部分に注目です。これがもし『ONBOOT=no』になっていたら『ONBOOT=yes』に変更しちゃってください。これは「ONBOOT(起動)時にこのネットワーク設定を読み込みますか?」的な項目になるのでここはバシッと「yes」にしちゃいましょう。
そしたら保存して『vi』を抜けちゃっててください。
続いてこの同じディレクトリ階層に『ifcfg-eth0』を『ifcfg-eth1』という名前で複製します。ちなみに複製しなくてもOKなのですがスペルミスとかあると面倒くさいので複製したほうが無難かなという感じです。
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth1
んでもって新しく出来た『ifcfg-eth1』くんをまた『vi』で開いてみましょう。すると『ifcfg-eth0』と同じ内容が書かれているわけなのですがそれを以下のように編集します。
DEVICE=eth0 HWADDR=08:00:27:39:61:B9 TYPE=Ethernet ONBOOT=yes
必要の無い行を削ってる感じなので『vi』の行を削ることのできる『dd』コマンドとかを使ってバシバシっと消しちゃってください。
そしたらまず『DEVICE=eth0』を『DEVICE=eth1』に変更します。
DEVICE=eth1 HWADDR=08:00:27:39:61:B9 TYPE=Ethernet ONBOOT=yes
続いて『HWADDR=08:00:27:39:61:B9』って部分です。これ要するに『MACアドレス』に該当する部分なので先程メモした『MACアドレス』を入力します。
ここで少し注意点なのですが先程メモした『MACアドレス』って『0800270BBB37』みたいな感じになってますよね。これを『08:00:27:0B:BB:37』というように2桁ずつ『:』で区切ったものを入力してください。著者の手元のCentOSでの完成形は以下のような感じですね。
DEVICE=eth1 HWADDR=08:00:27:0B:BB:37 TYPE=Ethernet ONBOOT=yes
これで準備はOKです。そしたら保存して『vi』を抜けちゃってください。
んでこれでネットワーク設定はバッチリなわけなのですがネットワーク設定を反映させるために一度ネットワークを再起動する必要があります。なので以下のコマンドを叩いちゃいましょう。
[root@localhost network-scripts]# /etc/rc.d/init.d/network restart
これでネットワークが再起動されます。少し時間がかかるのですが『[ OK ]』って沢山出てきたらOKです。もしOKじゃない場合は記述が少しおかしい可能性があるのでもう一度『ifcfg-eth0』くんと『ifcfg-eth1』くんを見直して見てください。
ちなみに『/etc/rc.d/init.d/network restart』は『reboot』コマンドとかでPCの再起動を行った場合でもネットワークを含めて再起動してくれますのでお好きな方でどうぞ。
そしたら現在のネットワークの状態を教えてくれる『ifconfig』っていうコマンドが居るのでこの子を叩いて見てください。
すると以下のような感じで
eth0 Link encap:Ethernet HWaddr 08:00:27:39:61:B9 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe39:61b9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:343 errors:0 dropped:0 overruns:0 frame:0 TX packets:206 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:30955 (30.2 KiB) TX bytes:28634 (27.9 KiB) eth1 Link encap:Ethernet HWaddr 08:00:27:0B:BB:37 inet6 addr: fe80::a00:27ff:fe0b:bb37/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1568 (1.5 KiB) TX bytes:936 (936.0 b) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
『eth0』と『eth1』がちゃんと出てきてればOKです。これでCentOS側のssh対応はバッチリです。
そしたらここで皆様のCentOSじゃない方のOS作業に移ります。
まずMacOS使いの方なのですがアプリの『コンソール』を開いて見てください。
そしたら『ssh -p 10022 root@192.168.56.1』って叩いてみてください。もし設定したポートが『10022』、『IPv4 アドレス』が『192.168.56.1』じゃない場合は皆様の設定した番号に変えてしまってください。
すると以下のように
root@192.168.56.1's password:
ってパスワードが聞かれますのでCentOSに『root』さんでログインするときに使ってるパスワードを入力すればOKです。
これでログイン出来たはずですがいかがでしょうか。もしログイン出来なかった場合はもう一度設定を確かめてみてください。
続いてWindowsOS使いな皆様についてです。
まずWindowsOSの場合はUNIX系OSじゃないので『ssh』コマンドくんが用意されていません。なので『Tera Term』とかを使ったりする必要があります。
最初に『Tera Term』のインストール方法ですがまず以下にアクセスしてみて下さい。
https://ja.osdn.net/projects/ttssh2/releases/
んでこのページの少し下の方に以下の部分がありますのでこれをクリックしてソフトウェアをダウンロードしましょう。インストーラーを使ってインストール出来る『.exe』のほうが楽ちんなのでこちらのほうがおすすめでございます。
あとはダウンロードしたファイルをダブルクリックしてインストーラーを起動してインストールを済ませます。特にこだわりがなければ初期設定のままでOKなのでインストーラーはポチポチ次へ進んでしまってOKです。
んでインストールが完了すると以下のアイコンがデスクトップとかに出来上がってると思うのでそれをダブルクリックして開きます。
すると以下の画面が出てくると思うので画像を参考にしつつ先程設定した『IPv4 アドレス』と『ポート』を入力してください。『ポート』は『22』ではなく『10022』の方になりますね。
んで「このネットワークは安全じゃないっす!」みたいな警告が出てくるかもですがもし出てきたらシカトして接続してしまってOKです。
そしたら以下の画面が出てきますので『ユーザー名』は『root』、『パスフレーズ』にはCentOSにログインする際のパスワードを入力してください。
これでログイン出来たはずですがいかがでしょうか。もしログイン出来なければ各設定を見直してみましょう。ひょっとするとファイアウォールとかも関わってくるかもしれないのですが多分大体の方がイケるのではないかなって思います。
今回ご紹介した内容は「エミュレーターで動かしているCentOSにリモートログインする」といった内容でしたが、エミュレーターではなくPC(サーバー)にUNIX系OSをインストールしてリモート操作する場合のネットワークの状態は「インターネットに繋がってる状態」であればOKです。
今回(CentOSの場合)は『ifcfg-eth0』だけでなく『ifcfg-eth1』を作成してこにょこにょしましたが『ifcfg-eth1』は必要なく『ifcfg-eth0』だけでOKな感じになりますね。今回作成した『ifcfg-eth1』はエミュレーター上で使用するためのローカルネットワークの設定なのでございました。
インターネットに接続する方法はOSによって違っており様々なパターンがありますのでもし「ネットに繋がらないぜー」という場合は「OS名 ネットワーク 設定」みたいなワードで検索して調べてみれば大体解決するかなと思います。
それともう一つリモート操作をする際に必要な『sshd』っていう子が居ます。この子はリモート操作(ssh)を処理するためのソフトウェアでございましてこの子が裏側で常に動いていないとリモート操作がさっぱり出来ないわけでございます。
CentOS6系では初期状態でsshdが自動で動いてくれる設定になっているので特別なことをする必要がないのですが他のOSの場合はsshdを裏側で動かす必要が出てくる場合があります。
その場合は以下のようなコマンドを叩いてみてください。以下はCentOSの場合になりますが他のOSも同じようにどこぞに居る『sshd』を『restart』とか『start』とかしてしまえばOKです。
[root@localhost ~]# /etc/rc.d/init.d/sshd restart sshd を停止中: [ OK ] sshd を起動中: [ OK ]
それとCentOSにデフォルトでインストールされている『sshd』くんはちょっと古いのでもし商用サーバーとかで運用する場合はなるべく最新の『sshd』に入れ替えてしまったほうが良いかもです。
というわけでかなり長くなりましたがお疲れ様でした、これでリモートログインはOKでございます。
ちなみにリモート操作を終了したい場合はCentOSをシャットダウン、シャットダウンしたくない場合は『exit』コマンドを打っちゃってください。これで抜けれます。
次の記事ではソフトウェアのインストール方法について色々とやっていきましょう。ではこの辺で失礼致します。
この記事は桜舞が執筆致しました。
著者が愛する小型哺乳類 |
桜舞 春人 Sakurama HarutoISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。 |
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。