#はじめに
VPS(さくらのVPS(仮想専用サーバ)上にUbuntuサーバーに公開鍵暗号設定をいれる。
Ubuntuバージョン:18.04.5
#ログイン・ユーザー作成・権限付与
Mac PCのターミナル、またはTera Term等のツールから作業
$ ssh ubuntu@[IPアドレス]
$ sudo adduser [User名]
$ sudo gpasswd -a [User名] sudo
#公開鍵暗号方式の設定
###公開鍵作成、配置
鍵のペアを作って、秘密鍵をローカルPC上に、公開鍵をサーバー上に格納する。
$ mkdir ~/.ssh #サーバー上でフォルダ作成
$ ssh-keygen -t rsa #ローカルで鍵を作成(パスフレーズなし)
$ ssh-copy-id -i ~/.ssh/id_rsa.pub [User名]@[IPアドレス] #ローカルからサーバーに公開鍵を配置
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/xxxxxxxxxxx/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Number of key(s) added: 1
Now try logging into the machine, with: "ssh ’[User名]@[IPアドレス]'"
and check to make sure that only the key(s) you wanted were added.
#公開鍵作成、配置完了
サーバー上で公開鍵を確認する。
$ cat ~/.ssh/authorized_keys #サーバー上で実行
ssh-rsa 公開鍵の情報
ローカルPC上で秘密鍵を確認する。
$ cat ~/.ssh/id_rsa #ローカルPC上で実行
-----BEGIN OPENSSH PRIVATE KEY-----
秘密鍵の情報
###鍵の権限設定
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys
###sshd_configの事前バックアップ
sshでログインする際、パスワードログインを禁止し、[User名]での公開鍵でのログインのみ許可する。コンフィグファイルをいじるので、念の為ファイルをバックアップする。
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.old
###sshd_config編集(viモード)
$ sudo vi /etc/ssh/sshd_config
viモードでは、以下有効化したい項目先頭のコメントアウト'#'を削除し、末尾の設定値(yes,no等)を書き換えてSaveする。
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
AllowUsers [User名]
$ sudo systemctl restart sshd #反映コマンド。念の為、接続済のセッションは残しておく
#秘密鍵を使用し、ユーザー[User名]でログイン
パスワード入力なしで、秘密鍵を使ってサーバーにログインできることを確認する。
$ ssh [User名]@[IPアドレス] -i ~/.ssh/id_rsa
Ubuntuではログインできなくなっていることを確認する。
$ ssh Ubuntu@[IPアドレス]
###自分以外のメンバーの公開鍵を登録
自分以外のメンバーがサーバーにログインできるよう、メンバーが持つ公開鍵を登録する。
$ sudo vi ~/.ssh/authorized_keys
ssh-rsa AAAABBB……XXX==
ssh-rsa AAAACCC……XXX==
ssh-rsa AAAADDD……XXX== #… こんな感じに複数の鍵を登録。
終わり。