- Advertisement -

CentOS7へのSSHサーバ導入とWindows10へのSSHクライント構築

CentOS7のSSH鍵認証設定方法

 CentOS7でSSHサーバを構築し、SSH鍵認証用鍵ペアをサーバ側で作成し、Windows 10のSSHクライントに秘密鍵を設定し、接続する方法を記載する。

設定環境

サーバ:Hyper-V環境のCentOS 7.7
クライアント:Windows 10

クライアント側とサーバ側で作成する鍵ペアの違い

クライアント側

クライアント側で鍵ペアで作成した場合は、公開鍵(サーバ):秘密鍵(クライアント)が1:1の鍵ペアがユーザー毎に作成され、公開鍵をサーバに登録することで、クライアントが対象者であると証明され、SSH接続を許可します。

・メリット
 クライアント側で作ることで秘密鍵がネット上に流出するリスクが少ない点。

・デメリット
 全クライアント分の公開鍵をサーバに登録しなければならないので、手間がかる。

サーバ側

 サーバ側で鍵ペアを作成した場合は、 公開鍵(サーバ):秘密鍵(クライアント)が1:Nとなり、 サーバ側で作った秘密鍵を各クライアントに受け渡すことで、サーバにSSH接続する権限を クライアント に付与します。

・メリット
 複数人で作業する際に、1つの秘密鍵を作業者全員に配るだけで良いので、手間がかからなくて済む。

・ デメリット
 鍵の受け渡しや共有の際に、ネットを使えば流出の危険性がある。

サーバでのsshインストール手順

インストール確認

[root@localhost umilcl]$ yum list installed | grep ssh
openssh-serverCode language: PHP (php)

インストール未の場合は以下でインストール

[root@localhost umilcl]$ yum -y install openssh-server

設定の確認

sshdの以下の設定の確認

# ポート番号 今回はデフォルト値としますが、セキュリティ上実運用は変えた方がよい
#Port 22

# rootでのSSHログインの可否:yes ログイン可、no ログイン不可
PermitRootLogin no

# パスワード認証の可否:yes パスワード認証可、no パスワード認証不可
PasswordAuthentication noCode language: PHP (php)

サービスの起動

[root@localhost umilcl]$ systemctl start sshd.service

ファイアウォール設定

 ssh用Portの開放確認今回はPort 22のため、解放されていると思われるが、変更している場合は設定が必要。

# 解放の確認
[root@localhost umilcl]$ firewall-cmd --list-all | grep ssh

# ポート解放
[root@localhost umilcl]$ sudo  firewall-cmd --permanent --add-service=sshCode language: PHP (php)

ポート変更有の場合のファイアウォール設定(変更なしの場合不要)

ファイアウォールのsshのポート設定変更

<?xml version="1.0" encoding="utf-8"?> 
<service>
   <short>SSH</short>
   <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
   <port protocol="tcp" port="変更後のポート"/> Code language: HTML, XML (xml)

ファイアウォールリスタート

[root@localhost umilcl]$ systemctl restart firewalld
[root@localhost umilcl]$ systemctl status firewalld -l

サーバでの鍵ペア作成手順

サーバ側で鍵ペアを作る

id_rsaという名前で鍵ペアを作成します。RSA 4096bitの鍵方式となります。それなりに強固です。
この作業で作った秘密鍵を、作業者に配布することになります。

[root@localhost umilcl]$ ssh-keygen -t rsa -b 4096
 Generating public/private rsa key pair.
 Enter file in which to save the key (/user/.ssh/id_rsa):
 Created directory '/user/.ssh'.
 Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
 Your identification has been saved in /user/.ssh/id_rsa.
 Your public key has been saved in /user/.ssh/id_rsa.pub.
 The key fingerprint is:
 SHA256:gNoQTdPhsMwaUrZaglLFCuSRRj+B3PsGJ730Bjz7AJs  user@localhost 
 The key's randomart image is:
 +---[RSA 4096]----+
 |++O=…         | |+Oo+.          | |o=+O o          |
 |.=.@.B .         |
 |. o @ * S        |
 |   E * o         |
 |    . +          |
 |       .         |
 |                 |
 +----[SHA256]-----+Code language: PHP (php)

パスワードは何も入力せずEnterを押せば設定しないことも出来ます。

公開鍵を登録(authorized_keysに登録)

[user@localhost ~]$ mkdir .ssh # .sshディレクトリ作成
[user@localhost ~]$ cd .ssh 
[user@localhost .ssh]$ touch authorized_keys # authorized_keysファイル作成 [user@localhost .ssh]$ cd ~ 
[user@localhost ~]$ cat id_rsa.pub >> ~/.ssh/authorized_keys #公開鍵登録 [user@localhost ~]$ chmod 600 ~/.ssh/authorized_keys #パーミッションの設定
[user@localhost ~]$ chmod 700 ../.ssh #パーミッションの設定 Code language: PHP (php)

パーミッションの設定をしないと、認証が通らないので確実にやりましょう。

秘密鍵の保存

 サーバにて作成されたid_rsaファイルをftpやscp等にてクライアントにコピーしてください。
クライントの保存先はC:\Users\user_name\.ssh\id_rsaに保存します。

クライアント側の秘密鍵設定

.ssh/configを編集(無ければ新規作成)

 Host username@hostname
   HostName  hostname 
   User  username 
   IdentityFile ~/.ssh/id_rsaCode language: JavaScript (javascript)

クライアント側接続テスト

下記コマンドにてパスワード不要で接続できれば成功です。

[user@localhost ~]$ ssh -i ~/.ssh/id_rsa username@hostnameCode language: JavaScript (javascript)

最後に

上記まででSSHサーバ、クライアントの導入は完了となる。

- Advertisement -
UMilCL
UMilCLhttps://umilcl.com
兼業ブロガー。大手製造業の企画・設計・プロジェクト管理で8年、受配電・電動機・システムの保全部門の課長1年目。 得意分野: プロセス制御と統計、機械学習、画像処理、システム技術 保有資格: プロジェクトマネージャー、情報処理安全確保支援士、ネットワークスペシャリスト、応用情報処理、第一種衛生管理者

Similar Articles

Comments

返事を書く

コメントを入力してください!
ここに名前を入力してください

- Advertisement -

Follow US

1ファンいいね
19フォロワーフォロー
633フォロワーフォロー
3,383フォロワーフォロー
0SubscribersSubscribe

Archive

Most Popular