CentOS7にTeratermからSSH接続する方法をやさしく解説

インフラ備忘録

こんにちは、ケロクマです。

今回は、元インフラエンジニアのケロクマが「CentOS7にTeratermからSSH接続する方法」を解説します。

SSH接続が出来ると、リモートで操作できたり、Tera termにログを記録できます。リモート接続出来ることで、目の前に本体が無くてもCent OSを操作できます。

 

事前準備物と使用環境

事前準備物と使用環境は以下。

  • Cent OSがインストールされた仮想環境→VMwareもしくはvirtual box
  • SSHするために使用するソフト:Teraterm(MacBookでは使用できない)
  • サーバ側OS:CentOS7
  • パソコンのOS:Windows 10

色々出てきたので、補足説明をおいておきますね。

  • 仮想環境とは?→いわゆるバーチャル環境。
  • VMwareとは?→1台のパソコン上でたくさんのOSを動かすための仮想化環境ソフト。
  • VirtualBoxとは?→MacBookに標準搭載されている仮想化環境ソフト。VMwareと同じで、Mac版の仮想化環境ソフト。

Cent OSをインストールしていない場合は、先にCentOSのインストールをしましょう。

 

補足:使用ソフトとOSについて

  • Teratermとは?→Windows用のターミナルエミュレータ。コマンドを打ったりして、遠隔で端末を操作できるソフト。
  • CentOSとは?→Linux系のOSの一つで、サーバー用のOS。Red Hat Enterprise Linux を真似して作られた無償のOS。
  • RHEL(レル)とは? Linux系OSの一つ。Red Hat Enterprise Linux を略して、RHEL(レル)と呼ばれている。

RHEL(レル)は有償のOSで、Cent OSは無償のOS。

企業はRHELを使ってることが多い。理由は、サブスクリプション型の契約なので、何かあったときにサポートしてもらえるから。無償のCentOSだと何かあったときにサポートがないため、RHELを使う。

 

Cent OSは無償で使用できるソフトなので、学習や個人で環境を作るときに最適。

 

SSH接続とは?

SSH接続とは、簡単に言えば「リモート接続」。目の前にものがなくても遠隔で、サーバなどを操作できる。昔はtelnetが使われていたが、今はSSHが主流。

  • telnetは通信が暗号化されないため、セキュリティ上のリスクがある。
  • SSHは通信が暗号化されるため、セキュリティ上のリスクは低い。ただし、rootのパスワードが漏れたら終わり。理由は、rootとは管理者ユーザーで全ての操作ができるので、乗っ取られると勝手に操作される危険性があるから。

SSH接続をするためには、SSHの設定ファイルを編集し、permit root Loginを「yes」にする。

permit root Loginとは、SSH接続をするときにrootでのログインを許可するかしないかの設定。この設定を「yes」にすると、rootユーザーでSSH接続できる。

 

TeratermからSSH接続する方法

早速、Cent OSにTeratermからSSHで接続する方法を紹介していく。

SSHを使うためには、CentOS側でSSHの接続許可設定をする必要がある。接続許可設定するために「sshd_config」という設定ファイルを編集する。設定ファイルは「/etc/ssh」の下に格納されている。、パスは「/etc/ssh/sshd_config」

  • 「sshd_config」とは?:sshの設定ファイル。
  • /etcとは?設定ファイルが置かれているディレクトリ。

 

同じディレクトリ内に「ssh_config」があるが、こちらではないので注意。

 

設定ファイルに移動し、設定内容を確認する

1.「sshd_config」が格納されているディレクトリ「/etc/ssh」に移動する。移動後に「pwd」コマンドで移動できたことを確認。

# cd /etc/ssh

<変更前> [root@centos ~]# 
<変更後> [root@centos ssh]#

# pwd
/etc/ssh
pwd:今いる場所(ディレクトリ)を表示するコマンド。

 

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アドレスを確認する手順へ。

 

デフォルトで「yes」になっている。もし「no」だった場合は「yes」に変更する。

 

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エディタとは?ファイルの中身(設定)を編集するためのもの。入力モードと、移動モードがあるため操作になれるまで少し時間がかかる。

実行コマンド

# vi /etc/ssh/sshd_config

permit root Loginの設定を「no」から「yes」に変更する。

【viエディタ操作コマンド】

  • 設定ファイル内の移動→カーソルキーで移動(矢印のキー)
  • 移動モードから入力モードにしたいとき(入力モードから移動モードに切り替えたいときも同様)→escキーを押す。
  • 文字入力したいとき→入力したい場所の一つ手前で「a」を入力する。
  • 文字を削除したいとき→削除したい文字の後ろにカーソルを合わせ、「x」を押す。※入力中にミスし、文字を削除したい場合は移動モードに切り替えてから操作する
  • 編集した内容を保存せずにviエディタを終了したいとき→:q!

  • 編集内容を保存し、viエディタを終了したいとき::wq!

設定の編集が終わったら、入力モードから移動モードに切り替え(escを押す)、「:wq!」を入力してviエディタを終了する。

 

diffコマンドで設定変更の確認

設定が変更できているか確認するため、catコマンドもしくはdiffコマンドで確認する。diffは差分を確認するコマンド。

catだと設定ファイルの中身が全て表示されてしまうが、diifを使用すると、変更前と変更後の部分のみ表示されるため、diffを使うのがオススメ。

実行コマンド

# diff etc/ssh/sshd_config etc/ssh/sshd_config.org

< PasswordAuthentication no 
--- 
>PasswordAuthentication yes
最初にファイルのバックアップを取ったコマンドの「cp -p」の部分を「diff」に変更すればOK。diffコマンドの左が編集したファイル(コピー元)、右がバックアップファイル(コピー先)。
実行結果の上が「変更後」、下が「変更前」の内容を表示している。
diffコマンドは、変更した部分の変更前と変更後が表示されるため、変更部分のみ確認したいときに便利。

最後に設定を反映させるために、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アドレスを使用する。

inetのxxx.xxx.xxx.xxx部分が「ens33」のIPアドレス。※使用する環境によって「ens33」の名前は変わる。

IPアドレスの確認ができたので、Tera termを起動し、SSH接続する。

 

Tera termを起動し、ssh接続する。

1:Tera termを起動したら、先ほどCentOS側で確認したIPアドレスを入力する。

2:SSHの設定にチェックが入っていることなどを確認し、OKボタンをクリック。しばらくすると、以下の画面が表示される。この画面は、本当にこの接続先に繋いでも大丈夫?という確認なので、「OKボタン」で問題なし。

(画像準備中)

 

※「接続が拒否されました」や「ホストに接続できません」と表示される場合の対処方法はこちら。(作成中)

 

3:ログインするためのユーザ名とパスワードが求められるので、ユーザー名にはrootを、パスワードはrootユーザーのパスワードを入力し、ログイン。

rootのパスワードはCentOSインストール時に設定したrootのパスワードを使用。

 

4:ログインに成功すると、画面上にプロンプト(#)が表示される。

これでCent OSへのSSH接続(リモート接続)が成功。

【CentOSで端末にログインした時は($)で、今回は(#)が表示される理由】

CentOSは一般ユーザでログインしているから、今回はrootでログインしているため(#)が表示される。

以上でCent OSへのSSH接続(リモート接続)の解説は終了。

コメント

タイトルとURLをコピーしました