Linux ホストへの接続方法
ssh プロトコルを利用して接続を行います。
ssh 接続の流れは以下の通りです。
- ホスト認証
- ユーザ認証
ホスト認証
ホスト認証は、接続先のサーバがなりすましではないことを認証します。ホストへの初回接続時に下記のメッセージが出て、ホストの公開鍵を記録するか確認されます。
Are you sure you want to continue connecting (yes/no/[fingerprint])?
「yes」と入力すると、~/.ssh/known_hosts ファイルに登録されます。その後、以下の流れで暗号化通信を確立します。
- 接続元のホストは共通鍵を生成し、接続先の公開鍵で暗号化する。
- 接続先のホストは送られてきた共通鍵を、自身の秘密鍵で復号する。
- 以降の通信は共通鍵を用いる。
接続先のサーバがなりすましであれば、接続先ホストの鍵ペアが異なるため、上記 2 の復号ができません。この仕組みによって、悪意あるユーザが接続先ホストになりすますことを防いでいます。
ユーザ認証
ユーザ認証は、接続先のホストが接続元のユーザを確認します。認証方法は下記2つがあります。
- ユーザ名とパスワードによる認証
- 公開鍵暗号方式による認証
以下の例では、ホスト「aaa.bbb.ccc.xxx」のユーザー「user」に対して接続を行っています。コマンド実行後はパスワード入力が求められます。
ssh user@aaa.bbb.ccc.xxx
ホストの IP アドレスは以下のコマンドで調べられます。実行したマシンに割り当てられている IP アドレスなどの情報を表示します。
ip a
公開鍵暗号方式による認証では、接続元ホストの公開鍵を事前に接続先ホストの「~/.ssh/authorized_keys」ファイルに登録しておき、鍵のペアで認証します。
まず、接続元で公開鍵ペアを作成します。-C オプションでコメントを付与できます。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
次に、生成した公開鍵を接続先ホストに登録します。以下の例では、ホスト「aaa.bbb.ccc.xxx」のユーザー「user」の「~/.ssh/authorized_keys」に登録されます。
ssh-copy-id user@aaa.bbb.ccc.xxx
登録後、パスワードなしでログインできれば認証成功です。
ssh user@aaa.bbb.ccc.xxx
接続の切断
ホストからの切断は、以下の方法があります。
- logout コマンド
- exit コマンド
- Ctrl + d 押下
ホストのシャットダウン
ホストの停止や再起動は、shutdown コマンドを使用します。
# 1分後にシャットダウン(オプション、引数省略)
shutdown
# 今すぐシャットダウン
shutdown -h now
# 5分後にシャットダウン
shutdown -h +5
# 5分後に再起動
shutdown -r +5
# 12時に再起動
shutdown -r 12:00
# シャットダウン、再起動の予約をキャンセル
shutdown -c
なお、以下のコマンドでもシャットダウンや再起動が可能です。
(シャットダウン)
- halt
- poweroff
- systemctl poweroff
(再起動)
- reboot
- systemctl reboot