見出し画像

これやらなくちゃ始まらない!SSH 接続でリモートログイン

今回の記事は、実際に手を動かして体と頭に理屈を染み込ませようと思い、過去に掲載した以下の記事と102試験の内容の一部を一連の流れで具現化してみました。実際の運用ではこれができないと話になりません。

あと、後々の手順書メモにもしてしまおう、という狙いもあります。皆様もよろしければご活用ください。もちろん、全てのパターンではないので状況と要件によって応用してもらう必要はあります。

この記事で紹介すること

◆新規ユーザーアカウント作成
◆ SSH リモートログイン
◆公開鍵と秘密鍵のキーペア作成

登場人物

◆ CentOS 7 ( ESXi ゲストOS )  2 台

─ ホスト名:CENT01
    └─ ユーザーアカウント:notedemo01

─ ホスト名:CENT03
    └─ ユーザーアカウント:notedemo03

実施手順概要

以下を 2 台のサーバーとアカウントでやり口を微妙に変えたりしながら実施しました。

①新規アカウント作成
②パスワードによる新規作成アカウントへの SSH ログイン
③新規作成アカウントにてキーペア作成
④作成した公開鍵を接続先に登録
⑤鍵認証による SSH ログイン

①新規アカウント作成

◆ CENT03 に「 notedemo03 」というユーザー作成

[root@CENT03 ~]# useradd notedemo03

[root@CENT03 ~]# ls /home | grep notedemo03
notedemo03 👈ホームディレクトリが作成された

[root@CENT03 ~]# passwd notedemo03 
ユーザー notedemo03 のパスワードを変更。 
新しいパスワード: 
よくないパスワード: このパスワードは辞書チェックに失敗しました。 - 辞書の単語に基づいています 
新しいパスワードを再入力してください: 
passwd: すべての認証トークンが正しく更新できました。 👈パスワードが設定された

## 念のため再度の作成確認
[root@CENT03 ~]# id notedemo03 
uid=1005(notedemo03) gid=1005(notedemo03) groups=1005(notedemo03)  

◆ CENT01 に「 notedemo01 」というユーザー作成
     上記同様に実施

②パスワードによる新規作成アカウントへの SSH ログイン

✅ CENT03「 notedemo03 」から CENT01「 notedemo01 」にSSH接続
[notedemo03@CENT03 ~]$ ssh notedemo01@CENT01 👈 DNS か/etc/hosts ファイルで名前解決できていない場合には、ホスト名ではなくIPアドレスを記述

## 初回ログインなので、簡単な処理を挟む
Could not create directory '/notedemo01/.ssh'. 
The authenticity of host 'cent01 (192.168.××.××)' can't be established. 
ECDSA key fingerprint is SHA256:dbRMVZ+QStVAdeOmlIWta8Fw8DYLr9cxmwMQCDOejt4. 
ECDSA key fingerprint is MD5:27:2e:1b:ce:78:31:a9:c5:23:9a:3b:87:47:93:6b:1a. 
Are you sure you want to continue connecting (yes/no)? yes 
👆「 yes 」と入力、そうすると「known_hosts」ファイルに接続先の公開鍵が登録される。この時点ではないので失敗。
Failed to add the host to the list of known hosts (/notedemo01/.ssh/known_hosts). 
notedemo01@CENT01's password: 

## 無事ログイン成功
[notedemo01@CENT01 ~]$ 

✅ CENT01「 notedemo01 」から CENT03「 notedemo03 」にSSH接続
[notedemo01@CENT01 ~]$ ssh notedemo03@CENT03
~ 上記同様、省略 ~
## 無事ログイン成功
[notedemo03@CENT03 ~]$  

③新規作成アカウントにてキーペア作成

③-A. notedemo03 のキーペアを作成

画像1

## notedemo03 ホームディレクトリ直下の「 .ssh 」ディレクトリ内にキーペアが作成されたことを確認
[notedemo03@CENT03 ~]$ ls -lA ./.ssh 
-rw------- 1 notedemo03 notedemo03 411  95 22:43 id_ed25519 
-rw-r--r-- 1 notedemo03 notedemo03  99  95 22:43 id_ed25519.pub  

③-B. notedemo01 のキーペアを作成
  ※あえて暗号化タイプを「 RSA 」にした、深い意味はない

画像2

[notedemo01@CENT01 ~]$ ls -lA ./.ssh 
-rw-------. 1 notedemo01 notedemo01 1679  95 23:00 id_rsa 
-rw-r--r--. 1 notedemo01 notedemo01  399  95 23:00 id_rsa.pub 

④作成した公開鍵を接続先に登録

③-A. notedemo03 の公開鍵を容易な方法で notedemo01 に登録

## 作成した公開鍵ファイル(.pub)の内容をCENT01のnotedemo01に受け渡し
[notedemo03@CENT03 ~]$ ssh-copy-id -i ~/.ssh/id_ed25519.pub notedemo01@CENT01 
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/notedemo03/.ssh/id_ed25519.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 
notedemo01@cent01's password: 
Number of key(s) added: 1 
Now try logging into the machine, with:   "ssh 'notedemo01@CENT01'" 
and check to make sure that only the key(s) you wanted were added. 

## notedemo01 の authorized_keys ファイルを確認、notedemo03の公開鍵情報が記載されている
[notedemo01@CENT01 ~]$ cat ./.ssh/authorized_keys 
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMpo4B+c+9dHNxqcMBdKpmG4qwUuqoWStjp0HKJdlBN/ notedemo03@CENT03 

③-B. notedemo01 の公開鍵を正攻法(?)で notedemo03 に登録

## SCP コマンド(SSHの仕組みでホスト間で安全にファイルコピーを行う)にて「 publickey 」というファイル名で、
## CENT03 の notedemo03 のホームディレクトリ直下に作成した公開鍵をコピー
[notedemo01@CENT01 ~]$ scp ~/.ssh/id_rsa.pub notedemo03@CENT03:publickey 
notedemo03@cent03's password: 
id_rsa.pub 

## notedemo03 にまずはパスワード認証でSSH接続
[notedemo01@CENT01 ~]$ ssh notedemo03@CENT03 
notedemo03@cent03's password: 
Last login: Sat Sep  5 23:17:02 2020 from 192.168.●●.●●

## 実際にコピーされたか確認
[notedemo03@CENT03 ~]$ ls -lA | grep publickey 
-rw-r--r--  1 notedemo03 notedemo03 399  9月  5 23:33 publickey 👈存在を確認

## 「 publickey 」の中身を念のため確認、先ほど作成したもので間違いない
[notedemo03@CENT03 ~]$ cat publickey 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOVJw2dx8C5keDMjWSESncSSQJnaU4pzrxqp3Q2DiZAFSwZ4bxHYVr5P71ohaLTNMuy0R2WwqRJ4r2B7RceQ5HeVWaQVd1Lrz/uNdZkyr3phodssi4hJqKKdqZd2CeZUGyTmHieJONxah4mjMwaATg4rto4Qv1Sk76bJ2HAE3K7OoSoUtfJPv8aOUnNLoGwXt+JdiDh0QjKsPiRrsASJQ9RTM9reOJgYd4roCMcM25Hd/AxSQB3rzXTAXod32XsLYQif4KMyrVwI9dWJN8A5jOKYwDRSMJEn9sDTcrSFDB1MkgcWsFbumNqgbdn2lU7CpvAM9YzQSI+uyadwpYh0t5 notedemo01@CENT01 

## 「 publickey 」の内容を「 authorized_keys 」ファイルに追記
[notedemo03@CENT03 ~]$ cat publickey >> ~/.ssh/authorized_keys 

## 「 publickey 」の中身を念のため確認、「 publickey 」の内容が追記されたことを確認
[notedemo03@CENT03 ~]$ cat ~/.ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOVJw2dx8C5keDMjWSESncSSQJnaU4pzrxqp3Q2DiZAFSwZ4bxHYVr5P71ohaLTNMuy0R2WwqRJ4r2B7RceQ5HeVWaQVd1Lrz/uNdZkyr3phodssi4hJqKKdqZd2CeZUGyTmHieJONxah4mjMwaATg4rto4Qv1Sk76bJ2HAE3K7OoSoUtfJPv8aOUnNLoGwXt+JdiDh0QjKsPiRrsASJQ9RTM9reOJgYd4roCMcM25Hd/AxSQB3rzXTAXod32XsLYQif4KMyrVwI9dWJN8A5jOKYwDRSMJEn9sDTcrSFDB1MkgcWsFbumNqgbdn2lU7CpvAM9YzQSI+uyadwpYh0t5 notedemo01@CENT01 

## 所有者(notedemo03)にだけ読み書きの権限を与えることに修正
[notedemo03@CENT03 ~]$ chmod 600 ~/.ssh/authorized_keys 
[notedemo03@CENT03 .ssh]$ ls -lA | grep authorized_keys 
-rw------- 1 notedemo03 notedemo03 399  95 23:39 authorized_keys 

⑤鍵認証による SSH ログイン

## notedemo03 ( CENT03 ) から notedemo01 ( CENT01 ) に SSH リモートアクセス
[notedemo03@CENT03 ~]$ ssh notedemo01@CENT01 
Last login: Sat Sep  5 22:40:31 2020 from 192.168.××.▲▲
[notedemo01@CENT01 ~]$ 

## notedemo01 ( CENT01 ) から notedemo03 ( CENT03 ) に SSH リモートアクセス
[notedemo01@CENT01 ~]$ ssh notedemo03@CENT03 
Last login: Sat Sep  5 23:35:00 2020 from 192.168.××.××

どちらも接続成功!

もしこの記事が何かの参考になったもしくは面白かったという方は、応援していただけると大変嬉しいです😊 これからもよろしくお願いします。