こんにちは、ケロクマです。
今回は、元インフラエンジニアのケロクマが「CentOS7にTeratermからSSH接続する方法」を解説します。
SSH接続が出来ると、リモートで操作できたり、Tera termにログを記録できます。リモート接続出来ることで、目の前に本体が無くてもCent OSを操作できます。
事前準備物と使用環境
事前準備物と使用環境は以下。
- Cent OSがインストールされた仮想環境→VMwareもしくはvirtual box
- SSHするために使用するソフト:Teraterm(MacBookでは使用できない)
- サーバ側OS:CentOS7
- パソコンのOS:Windows 10
色々出てきたので、補足説明をおいておきますね。
Cent OSをインストールしていない場合は、先にCentOSのインストールをしましょう。
補足:使用ソフトとOSについて
RHEL(レル)は有償のOSで、Cent OSは無償のOS。
企業はRHELを使ってることが多い。理由は、サブスクリプション型の契約なので、何かあったときにサポートしてもらえるから。無償のCentOSだと何かあったときにサポートがないため、RHELを使う。
SSH接続とは?
SSH接続とは、簡単に言えば「リモート接続」。目の前にものがなくても遠隔で、サーバなどを操作できる。昔はtelnetが使われていたが、今はSSHが主流。
- telnetは通信が暗号化されないため、セキュリティ上のリスクがある。
- SSHは通信が暗号化されるため、セキュリティ上のリスクは低い。ただし、rootのパスワードが漏れたら終わり。理由は、rootとは管理者ユーザーで全ての操作ができるので、乗っ取られると勝手に操作される危険性があるから。
SSH接続をするためには、SSHの設定ファイルを編集し、permit root Loginを「yes」にする。
TeratermからSSH接続する方法
早速、Cent OSにTeratermからSSHで接続する方法を紹介していく。
SSHを使うためには、CentOS側でSSHの接続許可設定をする必要がある。接続許可設定するために「sshd_config」という設定ファイルを編集する。設定ファイルは「/etc/ssh」の下に格納されている。、パスは「/etc/ssh/sshd_config」。
- 「sshd_config」とは?:sshの設定ファイル。
- /etcとは?設定ファイルが置かれているディレクトリ。
設定ファイルに移動し、設定内容を確認する
1.「sshd_config」が格納されているディレクトリ「/etc/ssh」に移動する。移動後に「pwd」コマンドで移動できたことを確認。
# cd /etc/ssh
<変更前> [root@centos ~]#
<変更後> [root@centos ssh]#
# pwd
/etc/ssh
2.「sshd_config」の編集をする前に、catコマンドでSSHの設定ファイルの中身を表示し、permit root Loginの設定が「yes」になっていることを確認する
# cat /etc/ssh/sshd_config
~
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
なぜ、いきなり中身を編集せずに設定ファイルの中身を確認するのか疑問ですよね。
【設定ファイルの中身を確認する3つの理由】
- 設定したいことが既に設定されていれば変更する必要がないため。
- ログを見た時に、編集する前の状態がわかる
- トラブルが起こったときに原因を特定しやすくなるため。
設定ファイルの中身を先に確認することで手間が省けるだけでなく、コマンドの学習にもなる。SSHの設定ファイルに限らず、ファイルの中身を編集する前には、catコマンドで中身を確認してから次に進むことをオススメする。
- permit root Loginの設定が「no」になっていたら、SSHの設定変更手順へ。
- permit root Loginの設定が「yes」なら、Cent OSのIPアドレスを確認する手順へ。
SSHの設定変更
ファイルの中身をviエディタで編集する場合は、バックアップを取っておくことをオススメする。バックアップをとっていれば、仮にミスをしても元の状態に戻せる。
sshd_configファイルのバックアップを取る
以下のコマンドを実行し、sshd_configファイルのバックアップを取る。
# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org
コマンドの形式は、「#cp -p コピー元 コピー先」。コピー元、コピー先それぞれフルパスで指定する。
- cp -p :コピーを取るためのコマンド。
- コピー元を左に、コピー先を右に記載する。
- 「.org」はオリジナルファイルの略。
- フルパス(絶対パス)とは?→ファイルの頭から(始まり)から目的のファイルがある場所までのパスのこと。
- 相対パス→今いる場所から目的のところに行くまでのパス。
- フルパス→rootからsshまで移動したいとき:/etc/ssh/sshd_config
- 相対パス→etcからsshd_configに移動したいとき:/ssh/sshd_config
バックアップできたら、「vi」エディタでファイルの中身を編集する。
実行コマンド
# vi /etc/ssh/sshd_config
permit root Loginの設定を「no」から「yes」に変更する。
設定の編集が終わったら、入力モードから移動モードに切り替え(escを押す)、「:wq!」を入力してviエディタを終了する。
diffコマンドで設定変更の確認
設定が変更できているか確認するため、catコマンドもしくはdiffコマンドで確認する。diffは差分を確認するコマンド。
実行コマンド
# diff etc/ssh/sshd_config etc/ssh/sshd_config.org
< PasswordAuthentication no
---
>PasswordAuthentication yes
最後に設定を反映させるために、ssh.serviceを再起動する。
#systemctl restart sshd.service
これで、rootでのSSH接続許可がされたため、SSHを使用したリモート接続ができるようになる。次は、CentOSのIPアドレスを確認する手順に進む。
Cent OSのIPアドレスを確認する
SSHでリモート接続するためには、接続先のIPアドレスがわからないと接続できないため、「ifconfig」コマンドでCent OSのIPアドレスを確認する。
# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet xxx.xxx.xxx.xxx netmask 255.255.255.0 broadcast 192.168.20.255
inet6 fe80::6852:eee3:23a9:caff prefixlen 64 scopeid 0x20<link>
〜略〜
「ens33」のIPアドレスを使用する。
IPアドレスの確認ができたので、Tera termを起動し、SSH接続する。
Tera termを起動し、ssh接続する。
1:Tera termを起動したら、先ほどCentOS側で確認したIPアドレスを入力する。
2:SSHの設定にチェックが入っていることなどを確認し、OKボタンをクリック。しばらくすると、以下の画面が表示される。この画面は、本当にこの接続先に繋いでも大丈夫?という確認なので、「OKボタン」で問題なし。
(画像準備中)
※「接続が拒否されました」や「ホストに接続できません」と表示される場合の対処方法はこちら。(作成中)
3:ログインするためのユーザ名とパスワードが求められるので、ユーザー名にはrootを、パスワードはrootユーザーのパスワードを入力し、ログイン。
4:ログインに成功すると、画面上にプロンプト(#)が表示される。
これでCent OSへのSSH接続(リモート接続)が成功。
【CentOSで端末にログインした時は($)で、今回は(#)が表示される理由】
CentOSは一般ユーザでログインしているから、今回はrootでログインしているため(#)が表示される。
以上でCent OSへのSSH接続(リモート接続)の解説は終了。
コメント