【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