SSH/SSL

暗号化・復号化

・共通鍵方式 暗号化と復号化に同じ共通鍵を使う

代表的な共通鍵暗号は、DES,AESなどがある

・公開鍵方式 公開鍵で暗号化し、秘密鍵で復号化する

公開鍵暗号は、プロトコル1ではRSAを使い、プロトコル2ではRSA・DSAを使う

同じRSA方式でもプロトコル1と2の互換性はない

SSH

Secure Shell Remote Shellの暗号化版

※Telnetは通信内容が暗号化されない

目的:

安全に遠隔操作

処理内容:

通信の暗号化+サーバの認証+ユーザの認証

利用例:

ファイルコピーのSSHバージョン rcp ⇒ scp

ファイル転送のSSHバージョン ftp ⇒ sftp

★SSHのインストール

apt-get install openssh

apt-get install openssh-server

apt-get install openssh-client

/etc/rc.d/init.d/sshd start SSHサーバの起動

ps -C sshd SSHサーバの確認

★基本操作

ssh user@host

ssh host ローカルUserとリモートUserが同じ(例:root)

ssh -p 2222 user@host ポート番号を指定(デフォルト:22)

ssh user@host '<リモートへのコマンド>'

ssh -l user host -l ユーザ名

ssh -l user host <リモートへのコマンド>

ssh user@host -i xxx.pem

ssh -v デバッグ

SSL

Secure Socket Layer 暗号化通信方式(特にブラウザとサーバの間)

Demo code

目的:

安全に情報通信

処理内容:

通信の暗号化+サーバの認証(証明書)

利用例:

HTTPS

★keytool用法

keytool -genkey -alias server-cert -keyalg rsa \

-keystore keystore.jks \

-keypass password -storetype JKS -storepass password

keytool -selfcert -alias server-cert -validity 7300 \

-keystore keystore.jks -keypass password -storetype JKS \

-storepass password

keytool -importkeystore -srckeystore keystore.jks \

-destkeystore keystore.p12 -srcstoretype JKS \

-deststoretype PKCS12 -srcalias server-cert \

-destalias server-cert -srckeypass password \

-destkeypass password -srcstorepass password \

-deststorepass password

★PKIについて

★SSH Tunnel

sudo ssh -i xxx.pem <user>@<host> -L <local port>:<remote IP>:<remote port> -Nf

★パスワードなしのログイン

1.ssh-keygen

$HOME/.ssh下にid_rsa.pubとid_rsaが作成された

2.ssh-copy-id user@host

= ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

★$HOME/.sshフォルダの中身

・authorized_keys ユーザ認証

・id_rsa privateキー

・id_rsa.pub publicキー

・known_hosts サーバ認証

★WindowsからLinuxに接続するツール

Tera Termなど

★opensslで秘密鍵と公開鍵を作成

openssl genrsa > private_key.pem

openssl rsa -pubout < private_key.pem > public_key.pem