【CentOS】SSHの公開鍵を設定をしてセキュアにログインできるようにする
おはようございます。
初の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サーバーを立てたりなんかの記事も書いていければと思います。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません