【CentOS7】SSH認証する

ネコニウム研究所

PCを利用したモノづくりブログ

【CentOS7】SSH認証する

2021-11-25 |

パスワードを使わず、SSH で認証します。

環境

サーバー側

  • CentOS Linux release 7.9.2009 (Core)

クライアント側

  • Windows 10 Home Version 21H1(OS ビルド 19043.1348)
  • git version 2.23.0.windows.1

手順書

環境にあるとおり、クライアント側は Windows としての手順を記載する。
鍵の作成に Git Bash を使う。

鍵の作成

クライアント側(Windows)で鍵を作る。
Git Bash で下記のコマンドを実行する。

ssh-keygen -t rsa -b 4096

鍵を保管するパスを入力する。空白なら c:/Users/USERNAME/.ssh/id_rsa に鍵が保管される。

Enter file in which to save the key (`/c/Users/USERNAME/.ssh/id_rsa`):

パスフレーズを使うなら入力する。空白でも良い。

Enter passphrase (empty for no passphrase):

パスフレーズを使う場合、同じものを入力する。

Enter same passphrase again

パスを指定していない場合は /c/Users/USERNAME/.ssh/id_rsaid_rsaid_rsa.pub が作成される。

鍵の移動

作成された鍵のうち id_rsa.pub をサーバーに転送する。既に SSH 認証でログインできるユーザーがいればそれを使う。もしくは、あまりよろしくないかもだけど 一時的に FTP を使うとか。

以下は、SSH ログインするユーザーでのサーバー側での作業です。

鍵ファイルを保管するディレクトリ .ssh が存在しない場合は作っておく。

mkdir ~/.ssh

クライアント側で作成した鍵ファイル id_rsa.pub.ssh の中に転送する。
転送後、下記のコマンドを実行する。

cat ~/.ssh//id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
rm ~/.ssh//id_rsa.pub

id_rsa.pubauthorized_keys に連結(存在しない場合はファイルが新規作成される)し、現在のユーザー以外がアクセスできないよう権限設定する。
連結後、転送した鍵ファイルを削除する。

SSH サーバーの起動

CentOS 7 では、標準でイントールされているはずなのでここは読み飛ばしても大丈夫です。

何らかの理由で SSH を再インストールする場合は下記のコマンドを実行する。

sudo yum install openssh-server

SSH サーバーの設定をいじる場合は /etc/ssh/sshd_config を編集する。
編集後は下記のコマンドを実行して、SSH サービスを再起動しておく。

systemctl restart sshd.service

SSH 認証でログインしてみる

クライアント側の cmd で下記のコマンドを実行して SSH 認証でログインできるか確認する。

ssh -i ~/.ssh/id_rsa USERNAME@HOSTNAME
カテゴリー「プログラミング覚書」の最近の記事
タグ「CentOS7」を含む最近の記事