【完全保存版】CentOS/UbuntuへのSSH公開鍵接続

【Ubuntu版】

1. ユーザーの作成

adduser [ユーザー名]

※rootでログインしている状態です

※ここではweb環境構築という意味でwebにしています

$ adduser web
Adding user `web' ...
Adding new group `web' (1004) ...
Adding new user `web' (1000) with group `web' ...
Creating home directory `/home/web' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: [パスワード入れてね]
Retype new UNIX password: [パスワード入れてね]
passwd: password updated successfully
Changing the user information for web
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y

2. sudoでパスワードを求められないようにする(便利なので)

2.1 wheelを有効化する

$ vi /etc/pam.d/su

#
# The PAM configuration file for the Shadow `su' service
#

# This allows root to su without passwords (normal operation)
#auth       sufficient pam_rootok.so ←ここをコメントアウトにして以下の1行を追加
auth       sufficient pam_rootok.so trust group=wheel

# Uncomment this to force users to be a member of group root
# before they can use `su'. You can also add "group=foo"
# to the end of this line if you want to use a group other
# than the default "root" (but this may have side effect of
# denying "root" user, unless she's a member of "foo" or explicitly
# permitted earlier by e.g. "sufficient pam_rootok.so").
# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
auth       required   pam_wheel.so ← ここをコメントインする
$ sudo visudo

↓下記の一行を追加する
%wheel ALL=(ALL) NOPASSWD:ALL

2.2 wheel グループ作成とユーザー追加

$ sudo addgroup wheel
Adding group `wheel' (GID 1005) ...
Done.

$ sudo usermod -aG wheel web

3. いよいよSSH環境構築

3.1 まずは自分のPCなどのローカル上で秘密鍵と公開鍵を作成する

$ ssh-keygen -t rsa

3.2 権限変更(すでにssh利用してある場合はやらなくて良い)

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa

3.2 `~/.ssh/id_rsa.pub` の内容をコピーしてサーバーに `authorized_keys` というファイル名で保存する

↓まずは webユーザー にな$る
$ su web

↓ホームディレクトリに移動する
$ cd

↓.sshがない場合は以下を実行
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

↓authorized_keysを作ってローカルで生成したid_rsa.pubの内容をコピーして保存する
$ cd ~/.ssh
$ vi authorized_keys

↓権限変更
$ chmod 600 ~/.ssh/authorized_keys

3.3 公開鍵認証を有効にする

$ sudo vi /etc/ssh/sshd_config

↓以下の3行になるように、コメントイン or 編集をする
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

$ sudo /etc/init.d/ssh restart 
[ ok ] Restarting ssh (via systemctl): ssh.service.

4. ローカルからssh接続をする

4.1 ssh接続を簡単にできるようにする

ローカル上の `~/.ssh/config` を編集する

Host [自分にとってわかりやすい名称]

  HostName XXX.XXX.XXX.XXX ←ssh接続先のIPなど

  User web

  Port 22 ←もしSSHのポートを変えている場合は適宜変更してください

  IdentityFile ~/.ssh/id_rsa ←さきほど生成した公開鍵の対の秘密鍵の場所

4.2 ssh接続を試みる

ssh [先ほど設定した自分にとってわかりやすい名称]

5. セキュリティを考慮してもうちょい設定を加える

ssh接続は公開鍵認証のみ、rootによるログインを禁止にする$ sudo vi /etc/ssh/sshd_config

$ sudo vi /etc/ssh/sshd_config

PermitRootLogin no
PasswordAuthentication no

$ sudo /etc/init.d/ssh restart
[ ok ] Restarting ssh (via systemctl): ssh.service.​

【CentOS版】

1. ユーザーの作成

$ useradd [ユーザー名]
$ passwd [ユーザー名]
↑このあとにパスワードを設定する

2. sudoでパスワードを求められないようにする(便利なので)

2.1 wheelを有効化する

$ gpasswd -a [ユーザー名] wheel

2.2 wheel グループに属するユーザーが sudo コマンドを利用できるようにする

$ visudo

%wheel ALL=(ALL) ALL     // この行の先頭にある # を消す
%wheel ALL=(ALL) NOPASSWD: ALL // この行をいれることでパスワードを求められないようになる

2-3. wheel グループ以外から su コマンドを実行できなくする

3. いよいよSSH環境構築

3.1 まずは自分のPCなどのローカル上で秘密鍵と公開鍵を作成する

$ ssh-keygen -t rsa

3.2 権限変更(すでにssh利用してある場合はやらなくて良い)

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa

3.2 `~/.ssh/id_rsa.pub` の内容をコピーしてサーバーに `authorized_keys` というファイル名で保存する

↓まずは webユーザー にな$る
$ su web

↓ホームディレクトリに移動する
$ cd

↓.sshがない場合は以下を実行
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

↓authorized_keysを作ってローカルで生成したid_rsa.pubの内容をコピーして保存する
$ cd ~/.ssh
$ vi authorized_keys

↓権限変更
$ chmod 600 ~/.ssh/authorized_keys

3.3 公開鍵認証を有効にする

$ sudo vi /etc/ssh/sshd_config

↓以下の3行になるように、コメントイン or 編集をする
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

$ sudo systemctl start sshd.service

4. ローカルからssh接続をする

4.1 ssh接続を簡単にできるようにする

ローカル上の `~/.ssh/config` を編集する

Host [自分にとってわかりやすい名称]

  HostName XXX.XXX.XXX.XXX ←ssh接続先のIPなど

  User web

  Port 22 ←もしSSHのポートを変えている場合は適宜変更してください

  IdentityFile ~/.ssh/id_rsa ←さきほど生成した公開鍵の対の秘密鍵の場所

4.2 ssh接続を試みる

ssh [先ほど設定した自分にとってわかりやすい名称]

5. セキュリティを考慮してもうちょい設定を加える

ssh接続は公開鍵認証のみ、rootによるログインを禁止にする$ sudo vi /etc/ssh/sshd_config

$ sudo vi /etc/ssh/sshd_config

PermitRootLogin no
PasswordAuthentication no

$ sudo /etc/init.d/ssh restart
[ ok ] Restarting ssh (via systemctl): ssh.service.​



この記事が気に入ったらサポートをしてみませんか?