LoginSignup
16
21

More than 5 years have passed since last update.

SSHについて調べてみた

Last updated at Posted at 2018-09-05

SSHとは

SSH(Secure Shell)はクラアント/サーバーアーキテクチャーを使用する2つのシステム間でのセキュアな通信を容易にし、ユーザーがリモートでサーバーにログイン出来るようにするプロトコルです。
SSHはログインセッションを暗号化するため、侵入者が暗号化されていないパスワードを入手するための接続が難しくなります。

よく聞く「OpenSSH」とはこのSSHのプロトコルを実現するための有名なソフトウェアの一つです。

SSHのログイン認証方法

1. パスワード認証

ユーザ名とパスワードが分かれば誰にでもログインされてしまいます。
SSHの設定ファイルを変更して無効にするのが標準です。

2. 公開鍵認証による接続

事前にローカル側で作成した公開鍵を、ログイン先のサーバに登録することで、
登録された公開鍵に対応した秘密鍵を持っているクライアントのみが接続できます。

SSHの確認方法

リモートホストのポート番号の初期値は22番です。

# sshdが動いてることを確認
$ lsof -i:22
$ lsof | grep sshd

# Macの場合はssh-agent
$ lsof | grep ssh-agend

~/.ssh/known_hosts

一度接続したことのあるサーバのSSHサーバ証明書は、
クライアント側のホームディレクトリの中、~/.ssh/known_hostsに格納されます。

known_hostsに記録されていないサーバに初めて接続する場合はコンソールに、
サーバの公開情報を出力します。

# known_hostsファイルの内容を表示
$ cat ~/.ssh/known_hosts

公開鍵認証について

鍵ペアの生成

SSHプロトコルのバージョン2用のRSA鍵ペアを生成します。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/john/.ssh/id_rsa):

Enterを押して、新規作成された鍵用のデフォルトの場所(~/.ssh/id_rsa)を確認します。

以下のようなメッセージが出力されます。

Your identification has been saved in /home/john/.ssh/id_rsa.
Your public key has been saved in /home/john/.ssh/id_rsa.pub.
The key fingerprint is:
e7:97:c7:e2:0e:f9:0e:fc:c4:d7:cb:e5:31:11:92:14 john@penguin.example.com
The key's randomart image is:
+--[ RSA 2048]----+
|             E.  |
|            . .  |
|             o . |
|              . .|
|        S .    . |
|         + o o ..|
|          * * +oo|
|           O +..=|
|           o*  o.|
+-----------------+

~/.ssh/ディレクトリのパーミッションを変更します。

$ chmod 700 ~/.ssh

クライアント側からサーバ側に公開鍵をコピー

$ scp ~/.ssh/id_rsa.pub remote-user-name@server-address:~

~/.ssh/authorized_keysファイルにコピーした公開鍵の内容を追加

# SSHログイン

$ ssh remote-user-name@server-address

# 公開鍵がコピーされていることを確認
$ cd ~ && cat id_rsa.pub

# 「.ssh」ディレクトリを作成・パーミッションを変更
$ mkdir ~/.ssh
$ chmod 700 .ssh

# 「~/.ssh/authorized_keys」を作成・パーミッションを変更
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

# 公開鍵を「~/.ssh/authorized_keys」に追加
$ cat ~/id_rsa.pub >> .ssh/authorized_keys

ログインする

# パスワード認証ではなく公開鍵認証でログインできることを確認します
$ ssh remote-user-name@server-address

エラーが出なければ問題ないです。

OPENSSHこれを読んでさらに理解を深めて行きます。

参考記事
OpenSSH 7.7 がリリースされました
OpenSSH-7.3p1 日本語マニュアルページ
redhat openSSH

16
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
21