SSHはSecureShellの略です。 その名前が示すように、SSHは、Windows、macOS、Linux(CentOS、Ubuntu、およびその他すべて)、およびその他の利用可能なオペレーティングシステムのサーバーまたはデスクトップシェルにリモートでアクセスすることを目的としています。これは基本的にネットワークプロトコルです。つまり、クライアントとサーバーの間に安全で暗号化された接続を確立するためのルールを設定します。
SSHを使用する主な利点は、インターネットなどの安全でないネットワークを介したデータの安全な送信です。リモートコンピュータを接続し、コマンドラインを介して安全にアクセスすることは非常に便利です。また、懐疑的なネットワークを介してファイルを転送するために使用することもできます。これが、ほとんどのデータセンターとクラウド管理者がサーバーにリモートアクセスするためにそれを使用する理由です。
ここでは、CentOS8LinuxにOpenSSHサーバーをインストールする手順を示します。このソフトウェアパッケージは、SSH(Secure Shellプロトコル)を使用して、クライアントサーバーアーキテクチャのネットワーク上に安全なチャネルを提供します。
CentOS8LinuxでSSHを有効にする
以下に示すOpenSSHサーバーのインストール手順は、CetnOS 8だけでなく、7や6などの以前のバージョンでも機能します。
1。 OpenSSHサーバーをインストールする
CentOS 8でコマンドターミナルを開きます。CLIバージョンを使用している場合は、すでにそこにあります。 OpenSSHのインストールは、CentOSの公式リポジトリにすでにあるため、非常に簡単です。したがって、1つのコマンドとそれがあなたのマシン上にあります。
sudo dnf –y install openssh-server
1つのコマンドで、OpenSSHクライアントとサーバーデーモンの両方がシステムにインストールされます。
2。 CentOSでSSHサービスを開始する
インストール後、開始する必要があります OpenSSHのサービスがなければ、Windows、Linux、またはその他のシステムのクライアントツールを介してOpenSSHにアクセスすることはできません。ただし、正常にアクティブ化した後は、簡単に接続して安全な接続を確立できました。したがって、次のコマンドを実行します。
OpenSSHサーバーSSHデーモンを起動します:
sudo systemctl start sshd
停止する場合、コマンドは
sudo systemctl stop sshd
3。 sshdのステータスを確認します
SSHサービスを開始した後、それが完全に機能しているかどうかを知るため。コマンドを実行します:
sudo systemctl status sshd
緑色の「アクティブ(実行中)」が表示されます 」すべてが正常であることを確認する画面上のテキスト。
4。ブートレベルでOpenSSHサービスを有効にする
SSHを自動的に開始する場合 システムを再起動するたび。次に、以下のコマンドを使用します。これにより、毎回手動で起動する必要がなくなります。
sudo systemctl enable sshd
無効にする 将来的には(オプションコマンド)実行します:
sudo systemctl disable sshd
5。ポート22ファイアウォールを許可する
すべての手順を実行した後でも、ファイアウォールが原因でクライアントからsshサーバーにアクセスできなくなった場合は、許可してください。 CentOS 8 LinuxでSSHポート22を許可するには、次のコマンドを実行します。
firewall-cmd --zone=public --add-port=22/tcp --permanent
ファイアウォールを再起動します:
firewall-cmd --reload
6。 SSHサーバーに接続します
SSH経由でCentOSに接続してアクセスするには、Windowsではコマンドプロンプトを、 Linuxではターミナルを開くだけです。 次の構文でコマンドを入力します:
ssh[メール保護]
例- ユーザー名がrootで、サーバーアドレスが192.168.0.12であるとすると、コマンドは次のようになります:
ssh [email protected]
デフォルトのポートを変更した場合22 他の何かにすると、次のようになります:
ssh [メール保護]:ポート
7。 CentOS 8/7のデフォルトのSShポートを変更します(オプション)
デフォルトでは、SSHが使用するポートは 22です。 ただし、セキュリティを向上させるために、別のものに変更できます。その編集のためにSSHD 構成ファイル。
sudo vi /etc/ssh/sshd_config
- ここで、 #port 22の行を見つけます
- 挿入を押します キーボードのキー。
- #を削除します sshdを変更します22 他のものとの移植、たとえば 5678
- ファイルを保存するには、 Escを押します キーを押してから、:wqと入力します
sshdサービスを再起動して、変更を有効にマークします。
service sshd restart
エラーが発生した場合:
Redirecting to /bin/systemctl restart sshd.service Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
これは、サービスに新しいポートを追加したことを通知して、SELinux権限を付与する必要があることを意味します。
semanage port -a -t ssh_port_t -p tcp 5678
注 : 5678を交換してください sshdに入力したポート番号を使用します 上記の構成ファイル
次のようなエラーが発生した場合も同様です:
ValueError: Port tcp/5678 already defined
これは、SSHサービスで使用することを選択しているポートが、他のサービス用にすでに割り当てられているか、予約されていることを意味します。したがって、構成ファイルのポート番号を変更して、semangeportコマンドを再度実行してください。 。
追加に成功したら、システムのSELinuxでSSHDサービスに許可されているポートを確認します。
semanage port -l | grep ssh
次のようなものが表示されます:
ssh_port_t tcp 5678, 22
最後に、1つのサービスに対して2つのポートがあります。
9。デフォルトのCentOSポート22をブロックする
1つのSecureShellサービスに2つのポートがあるため、デフォルトの 22をブロックできます。 永久に。これにより、システムのセキュリティが向上し、サービスに1つのカスタムポート番号のみを使用できるようになります。
firewall-cmd --direct --add-rule ipv4 filter INPUT -p tcp --dport 22 -j REJECT
ここで、ファイアウォールで作成したカスタムポート番号を許可します。この場合は5678です
firewall-cmd --add-port=5678/tcp --permanent
firewall-cmd --reload
これで、デフォルトの接続を介して接続できなくなり、試行すると、次のエラーが発生します:ssh: connect to host 192.168.0.107 port 22: Connection refused
カスタムsshポートを使用して接続するには、次のコマンド構文を使用します。
ssh -p 5678 [email protected]
上記のコマンドで5678 はポート番号なので、お持ちのポート番号に置き換えてください。
例:
ssh -p 5678 [email protected]
10。 rootログインを無効にする(オプション)
サーバーのセキュリティをさらにレベルを上げるために、SSHでのrootユーザーアクセスを無効にすることができます。これは、root以外のユーザーのみを使用してサーバーにリモートでアクセスおよび制御できることを意味します。
SSHD構成ファイルを再度編集します:
sudo vi /etc/ssh/sshd_config
- 矢印キーを使用して、次の行を見つけます:“ PermitRootLogin =yes 「
- 挿入を押します キーボードのキー。
- 値を「yestono」に変更します。
- Escを押します キーとタイプ-:wq
- Enterを押す キー
service sshd restart
11。 OpenSSHをアンインストールする
削除するには:
dnf remove openssh-server
続きを読む:
- CentOS8にVNCサーバーをインストールして構成する
- CentOS 8MinimalCLIサーバーにGUIをインストールする方法