sshの認証設定
ssh を利用して、公開鍵を使用して認証を実現させる手順です。 パスワード認証に比べ、より強固な認証を実現出来ます。 鍵の作成時の指定により、パスフレーズ無しでの認証設定も可能です。cron での実施する場合等で、応答要求を無くす事が可能です。rsync 等の自動バックアップなどで利用可能です。
サーバ側の設定
/etc/ssh/sshd_config の設定を変更します。
PermitRootLogin no <- 設定を有効にし、root でのLoginを禁止
RSAAuthentication yes <- RSA認証を有効にする。公開鍵の場所等を指定する。
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
GSSAPIAuthentication no <- GSSAPI認証は使用しない。(DNSの応答を待たない。)
#GSSAPICleanupCredentials yes <- コメントアウト。デフォルトはログアウト時に証明書のキャッシュを削除する。GSSAPI認証を使用しないので、余分な動作は止める。(yes の方が安心!。負荷はほとんど無いので、そのままが良いか?)
UseDNS no <- DNS認証は使用しない。(余り意味が無いけど)
上記の変更後、サービスを再起動します。
参考 特定のアドレスからの処理の記述
特定のアドレスからのみ root Login を許可する等の場合は、以下の記述で個別マッチの設定を行う
Match Address XXX.XXX.XXX.XXX
PermitRootLogin yes
鍵の作成(キーペアの作成)
この処理は、サーバ側で実施します。 SHA2 RSA 2048bitで作成します。
$ ssh-keygen -t rsa
上記を実行すると、ユーザのホームディレクトリ配下の .ssh 配下へ以下の二つのファイルが作成されます。
id_rsa <- 秘密鍵(クライアント側に配置する)
id_rsa.pub <- 公開鍵(サーバ側へ配置する)
※:作成時に、パスフレーズの入力を求められます。この時、パスフレーズを指定すると、ssh 等での接続時に、パスフレーズの入力を求められます。通常は、パスフレーズを指定して作成します(セキィリティの観点から)が、cron 等で実行する場合に使用する鍵を作成する場合は、パスフレーズを指定しないで作成します。
公開鍵の配置
公開鍵を指定の場所へ配置します(配置場所は、sshd_config で指定した場所です)。
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys
秘密鍵の配置
秘密鍵は、クライアント側へ配置します。
※:サーバ側の秘密鍵はセキュリティの観点から、配置終了後は削除する事が望ましいです。
以下の操作は、クライアント側で実施します。
scp 等で、サーバから秘密鍵をクライアント側へCopyします。 その後、指定の場所へ配置します。
$ mv id_rsa ~/.ssh/id_rsa $ chmod 600 ~/.ssh/id_rsa
オーナ/グループについても、確認しておきます。
動作確認
クライアント側から、接続の確認を行います。
$ ssh ユーザ名@サーバアドレス(サーバ名)
これで、接続が出来ればOKです。
※:鍵を作成する時に、パスフレーズを指定した場合は、上記の接続時にパスフレーズの入力を求められます。
rsync等で複数の鍵を使用する場合
rsync 等で、複数の鍵を使用する場合(複数のユーザでバックアップを取得するとかの場合)は、明示的に秘密鍵の場所を指定します。
$ /usr/bin/rsync -av --delete -e "ssh -i /home/abc/.ssh/id_rsa" abc@172.16.X.XX:/home/abc/samba/ /user/abc/
上記のように、ssh で、 -i のオブションを指定して、明示的に秘密鍵の場所を指定して実行します。
コメント
Hi, this is a comment.
To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.
Commenter avatars come from Gravatar.