【CentOS】SSHの公開鍵を設定をしてセキュアにログインできるようにする

Linux,開発

おはようございます。

初のLinux記事です。

今後何かサービスを作るにしても、
サーバーはLinuxにするだろうということで少しづつ触っていこうと思います。
以前は色々とやっていたのですが、しばらくWindowsしか触っていなかったので思い出すのに一苦労ですね。

スポンサーリンク

キーファイル(公開/秘密)の作成

サーバーであれば普通にコマンドを実行すればいいし、
Windows10 環境であれば、Git bash を利用すれば可能。

クライアント側で作成した方が安全。

コマンドプロンプトを起動し、次のコマンドを実行します。

# ssh-keygen -t [鍵種類] -b [サイズ]
> ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\ユーザー名/.ssh/id_rsa):

コマンド実行後に保存先の確認をされるので、そのまま Enter を押下。

ユーザーの作成

root ユーザでSSH接続し、ログイン後に次のコマンドを実行します。

# useradd [ユーザー名]
# passwd [ユーザー名]

$ useradd user01
$ passwd user01
ユーザー user01 のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

コマンド実行後にパスワード入力を求められるので、任意のパスワードを設定する。
上記のように出力されればOKです。

公開鍵をサーバーにアップ

クライアントでキーファイルを作成した場合は、公開鍵をサーバーにアップロードします。
(id_rsa.pubが公開鍵)

今回はコマンドプロンプトから scp でアップロードしますが、
WinScpなどのソフトを使っても大丈夫です。

> scp C:/Users/ユーザー名/.ssh/id_rsa.pub user01@[ホスト名]:/tmp

公開鍵の登録

user01 で SSH接続します。

ファイルの作成

次のコマンドを実行します。

$ mkdir /.ssh
$ touch /.ssh/authorized_key

権限設定

次のコマンドを実行します。

# d rwx --- ---
$ chmod 700 /.ssh
# - rw- --- ---
$ chmod 600 /.ssh/authorized_key
# 公開鍵の内容を追記
$ cat /tmp/id_rsa.pub >> /.ssh/authorized_key

SSH再起動

公開鍵を登録したら次のコマンドを実行してSSHサービスを再起動します。

$ service sshd restart
$ service sshd status

status コマンドを実行し、
緑色の文字で active(running)という文字が出力されていればOKです。

公開鍵での接続確認

コマンドプロンプトを起動し、次のコマンドを実行します。

> ssh -i C:\Users\ユーザー名/.ssh/id_rsa user01@[ホスト名]
Enter passphrase for key 'C:\Users\ユーザ名\.ssh\id_rsa':

コマンド実行後にパスワード入力を求められるので、
パスワードを入力して Enter を押下します。

無事に接続できれば完了です。

rootユーザーのリモートログインを禁止する

セキュリティリスクを低減させるため、
root ユーザーはリモートで直接ログインできないようにします。

rootユーザでSSH接続し、次のコマンドを実行しファイルを編集します。
(バックアップを取りましょう)

$ vi /etc/ssh/sshd_config

編集箇所

#rootのログイン許可
#yes → no
#PermitRootLogin yes 
PermitRootLogin no

#パスワード認証許可
#yes → no
#PasswordAuthentication yes
PasswordAuthentication no

#パスワードなしの許可
#コメントイン
#PermitEmptyPasswords no
PermitEmptyPasswords no

編集後、SSHを再起動すれば反映されます。

まとめ

ひとまずユーザーの作成から
ログインの制御までの設定ができました。

今後、WEBサーバーを立てたりなんかの記事も書いていければと思います。

ではでは。

スポンサーリンク


関連するコンテンツ

Linux,開発CentOS,Linux,RSA,SSH,公開鍵

Posted by doradora