####SSHとは??
SSH = S
ecure SH
ell
ネットワークに接続された機器とデータを暗号化して遠隔操作するために使用するアプリケーション層のプロトコル。
サーバー側ではSSHデーモン、クライアント側ではSSHクライアントを使用して通信する。
SSHにはSSHバージョン1とSSHバージョン2がある。SSHバージョン2の方が暗号化の安全性が高いと言われていてSSHバージョン2を使うのが主流のようです。
今回はSSHバージョン2、RSA公開鍵暗号方式で簡素にリモート接続する方法を記述します。
####公開鍵暗号方式とは?
暗号化されて対になっている鍵で認証を行う。サーバー側に「公開鍵」を設置してクライアント側で持つ「秘密鍵」でログインする。公開鍵Aがサーバーに設置されていたら対となる秘密鍵Aがログインに必要。別の秘密鍵Bを持っててもサーバーの公開鍵Aからはログインできない。秘密鍵Bでログインするなら対となる公開鍵Bがサーバにないとダメ。
鍵の作成
クライアント側で鍵を作る。ユーザーのホームディレクトリで作業。
mkdir .ssh
chmod 700 .ssh
cd .ssh
ssh-keygen コマンドで鍵を作成する。
ssh-keygen -t rsa -b 4096 -C "sample@sample.com"
-t rsa : SSH2のRSA公開鍵暗号方式
-b : バイト数。指定なしだと2048バイト
-C : コメント
オプションなしでも作成可能。
$ ssh-keygen (オプションなしで作成)
Generating public/private rsa key pair.
Enter file in which to save the key (/home/guest1/.ssh/id_rsa): ⇦ Enter押す(鍵の保存場所)
Enter passphrase (empty for no passphrase): ⇦ Enter押す(パスフレーズ設定)
Enter same passphrase again: ⇦ Enter押す(パスフレーズ確認)
Your identification has been saved in /home/guest1/.ssh/id_rsa.
Your public key has been saved in /home/guest1/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:TZ6gO14OKhQW3pjmf7IbZzZ83PPwXbkRG+cwnnKJK/k guest1@Cliant
The key's randomart image is:
+---[RSA 2048]----+
| |
| . |
| . = . . |
| B . . = . |
| + . . S + oo.|
| o . o . o **|
| . .. X + +.o =+o|
| . oB.B o= = .o|
| .+=. . oE .. |
+----[SHA256]-----+
id_rsa(秘密鍵)とid_rsa.pub(公開鍵)ができた。秘密鍵の権限を変更。
chmod 600 id_rsa
####サーバーに公開鍵を設置
今度はサーバー側のホームディレクトリで作業。
mkdir .ssh
chmod 700 .ssh
cd .ssh
vi authorized_keys
authorized_keysにクライアント側で作成したid_rsa.pub(公開鍵)の内容をコピペする。
chmod 600 authorized_keys
autorized_keysの権限の変更。
####接続する
ssh ユーザー名@ホスト名 or IPアドレス
.sshやauthorized_keysが適切な権限じゃないと接続できないので注意。
細かい設定をするファイル → /etc/ssh/sshd_config