中山テック 代表の中山です。
さて、前回のブログではVMWare(Workstation Player・無償版)にCentOSをインストールするという作業を行いました。
しかし、サーバのメモリも多くは割り当てられないので遠隔で操作したいと思っております。
今回はSSH通信でターミナルソフト経由でアクセスし、操作する方法についてお話したいと思います。
※これから説明するコマンドは、GUIのアプリケーション⇒システムツール⇒端末で実施したものです
これから行う操作はrootでしか行えないものも多いのでログインしておきましょう。
ターミナルソフト内で下記の操作を行います。
[ユーザ名@localhost ~]$ sudo su -
[sudo] ユーザ名 のパスワード:
最終ログイン: 2024/02/17 (土) 18:31:20 JST日時 pts/0
[root@localhost ~]#
sshd_config
SSHの設定ファイル「sshd_config」ファイルを修正します。
場所は/etc/ssh 配下にあるので移動します。
cd /etc/ssh
vi sshd_config
続いて以下の設定があるかどうかを確認します。
PermitRootLogin no ⇒rootログイン拒否(許可しても良いがセキュリティ的に)
PasswordAuthentication yes ⇒パスワード認証するかどうか。許可しない場合は公開鍵認証(こっちの方が安全)。今回は一旦yesに
PermitEmptyPasswords no
⇒空のパスワードは許可しないィ
また、sshは22番ポートと広くしられているので敢えて番号を変えるシステムが多いです。
その場合は同じconfigファイル内のPortを変更します。
Port 22
↓
Port 空いてるポート番号
今回は適当に50022を選び、「Port 50022」と設定しました。
更に任意のユーザのみ許可する設定も可能です。
AllowUsers 許可するユーザ
これでsshd_configの設定は完了しました。
反映コマンドは下記の通りです。
※現在は「systemctl」を使用することが推奨されています
systemctl restart sshd
ポート開放
SSHのポートを50022に変更したので、ポートを解放する必要があります。
これやらないとアクセスが出来ないので注意。
firewall-cmd --add-port=50022/tcp --zone=public --permanent
オプションに「--permanent」を付けると恒久的にポートが解放されます。
「--zone」はネットワークインターフェースのグループだと思っていただければ(グループごとのアクセス制御可)。
詳しくはこちらのページをご覧ください。
もし再びポートを閉じたい場合は下記のように命令します。
firewall-cmd --remove-port=50022/tcp --permanent
変更後「success」の文字が出たら成功です。
既に解放されている場合は「Already~」というエラーメッセージが出ます。
成功したらファイアウォールのリロードが必須です。
firewall-cmd --reload
接続
自分自身へ
まずはCentOS内で自分自身アクセスできるか確かめてみます。
ssh ユーザ名@IPアドレス -p 50022
※例:ssh 192.168.0.5@username -p 50022
ポート番号がデフォルト22の場合は「-p 50022」は不要です
「Last login: 曜日 月 日 時分秒 年 from IPアドレス」の形式が出たら成功です。
操作者の名前@host名で表示もされるのでこちらで確認するのも良いでしょう。
ターミナルソフトから接続
私がよく使用する「TeraTerm」で説明します。
立ち上げたらIPアドレスとポート番号を設定する箇所があるので入力していきます。
アクセス先のIPアドレスは、下記のコマンドから判別可能です。
ip a
2: ensXX: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:2f:d4:cc brd ff:ff:ff:ff:ff:ff
inet 192.168.XXX.XXX/24 brd 192.168.XXX.XXX scope global noprefixroute dynamic ens33
valid_lft 1061sec preferred_lft 1061sec
inet6 XXXX::XXXX:XXXX:XXXX:XXXX/64 scope link noprefixroute
valid_lft forever preferred_lft forever
ensXXはNIC(ネットワークインターフェースカード)のことで、ネットワーク接続インターフェースと思って頂ければ。
その中の「inet」と書かれた箇所のIPアドレスを指定します。
話を戻します。
TeraTermでログイン入力ダイアログが出てきたら通信そのものは成功です。
ユーザ名とパスフレーズは追加されたユーザのIDとパスを入れます。
認証方式ですが、「sshd_config」の項で「PasswordAuthentication yes」を設定しました。
故にプレインパスワードを使うのラジオボタンを選択します。
※noだった場合は公開鍵形式となるので、その下のラジオボタンを選択、公開鍵の場所も指定必須です
まとめ
さて、ホストの端末のスペックが高い場合は遠隔操作が最も効果的です。
ゲストはどうしてもスペックが低くなりがちなので、ターミナルソフトでの操作がおススメです。
※複数人で開発している場合は特に必須の内容となっております
当ブログが参考になれば幸いです。