【CentOS】SSHの公開鍵を設定をしてセキュアにログインできるようにする
おはようございます。
初のLinux記事です。
今後何かサービスを作るにしても、
サーバーはLinuxにするだろうということで少しづつ触っていこうと思います。
以前は色々とやっていたのですが、しばらくWindowsしか触っていなかったので思い出すのに一苦労ですね。
スポンサーリンク
キーファイル(公開/秘密)の作成
サーバーであれば普通にコマンドを実行すればいいし、
Windows10 環境であれば、Git bash を利用すれば可能。
クライアント側で作成した方が安全。
コマンドプロンプトを起動し、次のコマンドを実行します。
1 2 3 4 | #ssh-keygen -t[鍵種類] -b[サイズ] >ssh-keygen -trsa -b4096 Generatingpublic/privatersakeypair. Enterfileinwhichtosavethekey(C:\Users\ユーザー名/.ssh/id_rsa): |
コマンド実行後に保存先の確認をされるので、そのまま Enter を押下。
ユーザーの作成
root ユーザでSSH接続し、ログイン後に次のコマンドを実行します。
1 2 3 4 5 6 7 8 9 | # useradd [ユーザー名] # passwd [ユーザー名] $useradd user01 $passwd user01 ユーザーuser01のパスワードを変更。 新しいパスワード: 新しいパスワードを再入力してください: passwd:すべての認証トークンが正しく更新できました。 |
コマンド実行後にパスワード入力を求められるので、任意のパスワードを設定する。
上記のように出力されればOKです。
公開鍵をサーバーにアップ
クライアントでキーファイルを作成した場合は、公開鍵をサーバーにアップロードします。
(id_rsa.pubが公開鍵)
今回はコマンドプロンプトから scp でアップロードしますが、
WinScpなどのソフトを使っても大丈夫です。
1 | >scpC:/Users/ユーザー名/.ssh/id_rsa.pubuser01@[ホスト名]:/tmp |
公開鍵の登録
user01 で SSH接続します。
ファイルの作成
次のコマンドを実行します。
1 2 | $mkdir/.ssh $touch/.ssh/authorized_key |
権限設定
次のコマンドを実行します。
1 2 3 4 5 6 | # d rwx --- --- $chmod700/.ssh # - rw- --- --- $chmod600/.ssh/authorized_key # 公開鍵の内容を追記 $cat/tmp/id_rsa.pub>>/.ssh/authorized_key |
SSH再起動
公開鍵を登録したら次のコマンドを実行してSSHサービスを再起動します。
1 2 | $service sshd restart $service sshd status |
status コマンドを実行し、
緑色の文字で active(running)という文字が出力されていればOKです。
公開鍵での接続確認
コマンドプロンプトを起動し、次のコマンドを実行します。
1 2 | >ssh -iC:\Users\ユーザー名/.ssh/id_rsauser01@[ホスト名] Enterpassphraseforkey'C:\Users\ユーザ名\.ssh\id_rsa': |
コマンド実行後にパスワード入力を求められるので、
パスワードを入力して Enter を押下します。
無事に接続できれば完了です。
rootユーザーのリモートログインを禁止する
セキュリティリスクを低減させるため、
root ユーザーはリモートで直接ログインできないようにします。
rootユーザでSSH接続し、次のコマンドを実行しファイルを編集します。
(バックアップを取りましょう)
1 | $vi/etc/ssh/sshd_config |
編集箇所
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #rootのログイン許可 #yes → no #PermitRootLogin yes PermitRootLogin no #パスワード認証許可 #yes → no #PasswordAuthentication yes PasswordAuthentication no #パスワードなしの許可 #コメントイン #PermitEmptyPasswords no PermitEmptyPasswords no |
編集後、SSHを再起動すれば反映されます。
まとめ
ひとまずユーザーの作成から
ログインの制御までの設定ができました。
今後、WEBサーバーを立てたりなんかの記事も書いていければと思います。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません