SSH
概要
- サーバにセキュアに接続するためのツール、及びそのプロトコル
- ここでは、ツールのサーバ側について説明 → クライアント側については ssh を参照
サーバ側の設定
- 設定ファイルは /etc/ssh/sshd_config
公開鍵認証の設定
- パスワードによるログインではなく、公開鍵認証によりログインするための設定
- サーバ設定を先にすると、ログインできずに泣くことになるので、事前に公開鍵をサーバに登録しなければならない
- 公開鍵、秘密鍵の生成 → ssh-keygen を参照
- 公開鍵をサーバに登録
- 公開鍵の内容をサーバの ~/.ssh/authorized_keys に追記する
- ssh-copy-id を使う (簡単)
$ ssh-copy-id -i keyName.pub User@Server
- 基本は ssh に似ている
- -i keyName.pub: 登録する公開鍵ファイルを指定 (ない場合は、デフォルトで生成する id_rsa.pub が指定される)
- User: サーバのユーザ名
- Server: サーバ名
- 手動で登録
- サーバにログイン
- ~/.ssh/authorized_keys をエディタで開く (ない場合は新規作成)
- クライアント側にある公開鍵ファイルをエディタで開く
- クライアント側の公開鍵ファイルの内容をサーバ側の authorized_keys に追記する形で、コピペ
- セキュリティを高めるため、以下の権限変更をする
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys
- トリッキーなワンライナーでの方法
$ cat ~/.ssh/keyName.pub | ssh User@Server 'cat >> ~/.ssh/authorized_keys'
- scp で公開鍵を転送し、追記
$ scp ~/.ssh/keyName.pub User@Server:~ $ ssh User@Server $ cat ~/keyName.pub >> ~/.ssh/authorized_keys
- 公開鍵認証で接続できるか確認
$ ssh User@Server
- 公開鍵生成でパスワードを設定しない場合は、パスワード無しで接続できる
- 公開鍵生成でパスワードを設定した場合は、その際のパスワードで接続できるか確認
- パスワード認証の無効化 (/etc/ssh/sshd_config の編集)
PasswordAuthentication no ChallengeResponseAuthentication no
- サーバのリスタート
$ sudo service ssh restart