このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンド演習59

以下のコマンドの演習を行います。

実際にコマンド操作を行いながら、Linuxの操作に慣れていきましょう。

演習01:自身のPCのIPアドレスを調べます。

・ifconfig コマンドを実行します。

 「user01」というユーザーでログインしています。ここで使用しているPCは、学習用の仮想マシンなので、IPアドレスは「10.0.2.15」となっています。

[user01@localhost ~]$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::f837:d171:c269:5035  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:57:5d:71  txqueuelen 1000  (Ethernet)
        RX packets 87826  bytes 130004256 (123.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6204  bytes 386022 (376.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 68  bytes 5896 (5.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 68  bytes 5896 (5.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:88:d4:47  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

・ping コマンドで疎通確認しておきます。

[user01@localhost ~]$ ping 10.0.2.15
PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.075 ms
64 bytes from 10.0.2.15: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 10.0.2.15: icmp_seq=3 ttl=64 time=0.034 ms
64 bytes from 10.0.2.15: icmp_seq=4 ttl=64 time=0.035 ms
64 bytes from 10.0.2.15: icmp_seq=5 ttl=64 time=0.039 ms
64 bytes from 10.0.2.15: icmp_seq=6 ttl=64 time=0.044 ms
^C
--- 10.0.2.15 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 4998ms
rtt min/avg/max/mdev = 0.034/0.047/0.075/0.016 ms

ping は通ります。

演習02:「ssh taro@10.0.2.15」で初回接続する。

 SSHでは、ホスト認証という仕組みを導入することで、ホストの偽装による偽サーバーへの接続を防ぎます。この仕組みにより、クライアントが正規のサーバーと通信していることを確認し、安全な通信を確保します。

 ホスト認証は、クライアントが特定のサーバーに初めて接続する際に行われます。初回接続時には、クライアントはサーバーのホストキー(ホストの公開鍵)を受け取ります。このホストキーは、サーバーの識別情報として利用されます。クライアントは、ホストキーをローカルに保存し、以降の接続時に使用します。

 初回接続時にホスト認証用のデータがない場合、クライアントはユーザーに対して警告を表示し、ユーザーにホストキーの保存を求めます。ユーザーが承認すると、クライアントはホストキーを保存し、以降の接続時に使用します。

・「ssh taro@10.0.2.15」で初回接続します。

Linuxには「user01」でログインしていますが、「taro」でホスト「10.0.2.15」に接続します。

[user01@localhost ~]$ ssh taro@10.0.2.15 # taroでSSH接続します。
The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established.
ECDSA key fingerprint is SHA256:S1D7Hcw0FvbMdb4j/Tp3nW3GBJXa5FYqlWmFngR+6UQ.
ECDSA key fingerprint is MD5:e9:63:7b:ce:88:ee:af:87:33:4b:a6:88:51:e0:11:c5.
Are you sure you want to continue connecting (yes/no)? yes # 
Warning: Permanently added '10.0.2.15' (ECDSA) to the list of known hosts.
taro@10.0.2.15's password: # パスワードを入力します。
Last login: Fri Jan 19 01:32:31 2024
[taro@localhost ~]$ # taroでSSH接続できました。

taroでSSH接続できました。

演習03:SSH接続を終了する。

SSH接続を終了するには、exit コマンドを実行します

・exit コマンドを実行します。

[taro@localhost ~]$ exit
ログアウト
Connection to 10.0.2.15 closed.
[user01@localhost ~]$ 

SSH接続が終了して、user01のプロンプトに戻ります。

演習04:SSHで2回目以降の接続を行います。

2回目以降の接続では、パスワードを入力するだけでログインできます。

・「ssh taro@10.0.2.15」で2回目のSSH接続します。

[user01@localhost ~]$ ssh taro@10.0.2.15
taro@10.0.2.15's password: # パスワードを入力します。
Last login: Fri Feb 23 16:53:33 2024 from 10.0.2.15
[taro@localhost ~]$ # taroでSSH接続できました。

2回目からは、パスワードを入力するだけでログインできました。