SSH のバックアップソース(No.10)

#author("2022-04-23T23:23:58+09:00","default:k1rou","k1rou")
*SSHとは [#bcce46c0]
**名称 [#hf0bb1eb]
-Secure Shell

**概要 [#b28255cb]
-[[通信機器]]の遠隔操作で利用する[[通信プロトコル]]
--[[TCP/IP]]階層のトランスポート層とアプリケーション層の間で[[暗号化]]が行わる。
-セッションごとに異なる暗号鍵を生成する。

-ポート番号:22/TCP

-SSHの認証手段
--[[パスワード認証]]
--[[公開鍵認証]]

-暗号化に使われる暗号方式
--[[3DES]]、[[AES]]、[[Blowfish]]、[[Arcfour]]

**[[ポートフォワーディング]]機能 [#nb097d83]
-[[暗号化]]機能を備えていないアプリケーションの通信を、SSHが中継することで暗号化する機能。
-活用例
--[[FTP]]
--[[POP3]]

*プロトコルバージョン [#r82d56fd]
-SSH1
-SSH2(推奨)

*コマンド [#i9990ec9]
-[[Linuxのネットワーク]]

*SSHを使った機能 [#n218615a]
-BSD系UNIXのr系のコマンド
--rlogin、rsh

-[[X11]]
-[[Telnet]]

-[[SFTP]]
-[[SCP]]

*設定ファイル [#yce394f3]
-/etc/ssh/ssh_config

*認証鍵ファイル [#b78ced11]
**ssh-keygenコマンドで生成 [#we336afc]
-[[RSA]]
--秘密鍵:~/.ssh/id_rsa
--公開鍵:~/.ssh/id_rsa.pub

-[[DSA]]
--秘密鍵:~/.ssh/id_dsa
--公開鍵:~/.ssh/id_dsa.pub

**サーバ(接続先)の設定ファイルに公開鍵を追加 [#tf24dca6]
--~/.ssh/authorized_keys

**接続元の設定ファイルに接続したサーバ(接続先)の情報(公開鍵の指紋)が登録される [#c6217117]
--~/.ssh/known_hosts

*鍵の保存場所 [#s29dc319]
-SSHクライアント
--~/.ssh
-SSHサーバ
--/etc/ssh

*コマンド [#cd58c642]
**ssh-keygen [#tea8c8c2]
-鍵の生成
 ssh-keygen -t rsa
 ssh-keygen -t rsa -b 2048
 ssh-keygen -t rsa -b 4096
 ssh-keygen -t rsa -b 4096 -f <output-keyfile>
 
 ssh-keygen -t dsa
 ssh-keygen -t ecdsa
 ssh-keygen -t ed25519

-鍵の生成([[セキュリティキー]]を使って生成)
 ssh-keygen -t ecdsa-sk
 ssh-keygen -t ed25519-sk
 ssh-keygen -t ed25519-sk -O resident ※セキュリティキー内に鍵を生成する

-OpenSSH形式の鍵を指定したフォーマットで標準出力
 ssh-keygen -e -f <input-keyfile> ※デフォルト(RFC4716)
 ssh-keygen -e -f <input-keyfile> -m RFC4716
 ssh-keygen -e -f <input-keyfile> -m PKCS8
 ssh-keygen -e -f <input-keyfile> -m PEM

-指定したフォーマットの鍵をOpenSSH形式で標準出力
 ssh-keygen -i -f <input-keyfile> ※デフォルト(RFC4716)
 ssh-keygen -i -f <input-keyfile> -m RFC4716
 ssh-keygen -i -f <input-keyfile> -m PKCS8
 ssh-keygen -i -f <input-keyfile> -m PEM

-known_host から指定したホストの情報を削除する
 ssh-keygen -R <host-name>
 ssh-keygen -R [<host-name>]:<port-no>

-BASE64形式をOpenSSH形式(RFC4716)に整形する
 ssh-keygen -i -f <Public-key-file-name> >> ~/.ssh/authorized_key

**ssh-copy-id [#r8d1fdb3]
 ssh-copy-id <username>@<hostname>

*ssh-agent [#q3750984]
**Mac [#f3970bcc]
-鍵の登録
 ssh-add [file-name] ※秘密鍵
--鍵の登録 ※キーチェーンに登録
 ssh-add -K [file-name] ※秘密鍵

-登録している鍵の確認
 ssh-add -l

-登録した鍵を使って接続
 ssh -A [nameOfTheKey]

-設定ファイル(~/.ssh/config)
 ServerAliveInterval [numberOfSecond]
 ForwardAgent


*ツール(クライアント) [#e41b441f]
-[[PuTTY]]
-[[Tera Term]]

*ソフトウェア [#ef6e7228]
-[[OpenSSH]]

*フォーマット [#de57c4b7]
**RFC 4716 [#q76ffade]
-The Secure Shell (SSH) Public Key File Format~
https://datatracker.ietf.org/doc/html/rfc4716

 ---- BEGIN SSH2 PUBLIC KEY ----
 <Base64 Encoded key>
 ---- END SSH2 PUBLIC KEY ----

*関連サイト [#v885f8a6]
-ssh-agent (日本語)~
https://euske.github.io/openssh-jman/ssh-agent.html

*関連用語 [#aaddcf4c]
-[[GnuPG]]
-[[FTP]]
-[[Telnet]]
-[[公開鍵暗号方式]]
-[[フィンガープリント]]