1. tetymd

    No comment

    tetymd
Changes in body
Source | HTML | Preview
@@ -1,91 +1,91 @@
ローカルで起動しているサーバにログインする際、
毎回パスワードを入力するのが面倒なので公開鍵認証を使用して省略します。
#環境
- 端末A(Ubuntu17) ー接続する側
- 端末B(CentOS7) ー接続される側
Linux以外でも多分同じ。
#公開鍵認証で接続するための4ステップ
![スライド2.JPG](https://qiita-image-store.s3.amazonaws.com/0/237938/114fe3ae-4376-ad9d-2014-da61891007ac.jpeg)
1. 「接続する側」で秘密鍵と公開鍵を作る。
2. 1で作った公開鍵を「接続される側」に送る。
3. 「接続される側」で、送られてきた公開鍵をauthorized_keysファイルに登録(追記)する。
4. 「接続する側」から「接続される側」にSSH接続し、パスフレーズを入力。
これ以降はSSHなどで接続した時、パスワードを聞かれなくなります。
#公開鍵認証で使用する3つのファイル
![スライド1.JPG](https://qiita-image-store.s3.amazonaws.com/0/237938/4a3aadff-97b2-f38a-d128-c9d7eee57971.jpeg)
#実際にやってみる
##「接続する側」で秘密鍵と公開鍵を作る
まず端末A「接続する側」で秘密鍵と公開鍵を作るため、
以下のコマンドを実行します。
```shell
$ ssh-keygen -t rsa
```
コマンド実行後パスフレーズの入力を求められます。
```shell
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): Enterキー
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): パスフレーズ入力
Enter same passphrase again: 再度パスフレーズ入力
```
パスフレーズは忘れたら鍵を作り直さないといけなくなるので注意。
以上の入力が終わって、こんなのが出たら秘密鍵と公開鍵の作成は終了です。
鍵は/home/user/.sshに保存されています。
```shell
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
(フィンガープリント)
```
##「接続される側」に公開鍵を送る
端末A「接続する側」で作った公開鍵を端末B「接続される側」に送ります。
いろんな方法がありますが、今回はscpコマンドを使います。
```shell
$ scp ~/.ssh/id_rsa.pub user@host:~
```
##「接続される側」で、公開鍵を登録する
端末Aから送られてきた公開鍵を登録します。
端末Bに.sshディレクトリがない場合はmkdirなどで作っておきましょう。
```shell
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
```
コマンド実行後は送られてきたid_rsa.pubを削除しても大丈夫です。
##接続する
鍵の登録が済んだのでsshコマンドで公開鍵認証で接続できるか確認しましょう。
最初の接続は鍵を作った際に入力したパスフレーズを聞かれるので入力します。
接続できたらexitで一旦抜けて、再度接続してみてください。
パスワードを聞かれなければ公開鍵認証成功です。
#補足
接続できない場合は以下の点を確認してください。
- [ディレクトリ・ファイルのパーミッション](https://www.pistolfly.com/weblog/2007/02/ssh.html)
- SELinux
#参考
-[公開鍵暗号方式 - wikipedia](https://ja.wikipedia.org/wiki/%E5%85%AC%E9%96%8B%E9%8D%B5%E6%9A%97%E5%8F%B7)
+[公開鍵暗号 - wikipedia](https://ja.wikipedia.org/wiki/%E5%85%AC%E9%96%8B%E9%8D%B5%E6%9A%97%E5%8F%B7)
https://www.pistolfly.com/weblog/2007/02/ssh.html