Windows10で公開鍵暗号方式のキーペアを作りubuntuに入れてsshで繋ぐ準備

# ubuntuにssh(teraterm/公開鍵暗号方式)でログインしたい
というのに数時間ぐらい使ったのでまとめておく。
インターネットに存在する偉大なる先人様の知恵に感謝。
## キーペアの生成(OpenSSHのインストール～鍵生成)
[アプリと機能]のクッソ見難いところに[オプション機能]ってのがあるんで、その中にありました。
Homeでもあるのかは不明。Proしか家にないから解らない。
![Windowsのアプリと機能のオプション機能](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293888/8308354b-fe43-1a4e-ddbe-4ecb3ba06059.png)

普通にパス通っている。helpのオプション無いの？そう・・・。

```powershell:powershell
PS C:\Users\deile666> ssh-keygen ----
unknown option -- -
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa]
                  [-N new_passphrase] [-C comment] [-f output_keyfile]
       ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
       ssh-keygen -i [-m key_format] [-f input_keyfile]
       ssh-keygen -e [-m key_format] [-f input_keyfile]
       ssh-keygen -y [-f input_keyfile]
       ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
       ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
       ssh-keygen -B [-f input_keyfile]
       ssh-keygen -F hostname [-f known_hosts_file] [-l]
       ssh-keygen -H [-f known_hosts_file]
       ssh-keygen -R hostname [-f known_hosts_file]
       ssh-keygen -r hostname [-f input_keyfile] [-g]
       ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
       ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
                  [-j start_line] [-K checkpt] [-W generator]
       ssh-keygen -s ca_key -I certificate_identity [-h] [-U]
                  [-D pkcs11_provider] [-n principals] [-O option]
                  [-V validity_interval] [-z serial_number] file ...
       ssh-keygen -L [-f input_keyfile]
       ssh-keygen -A
       ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
                  file ...
       ssh-keygen -Q -f krl_file file ...
```

Linuxに入れるOpenSSHと同じっぽい。
オプションについては今回は略。なにも入れないと2048bitでRSA鍵が出来る。

```powershell:powershell
PS C:\Users\deile666> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\deile666/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\deile666/.ssh/id_rsa.
Your public key has been saved in C:\Users\deile666/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:IU+ghz05ErjTaa6uaFyYAipOI9oAYHTT7tw47U03hXA deile666@MyComputer
The key's randomart image is:
+---[RSA 2048]----+
|.. +o .          |
|..o .* o . E     |
|o  o=.B o o .    |
|o o ++ * . . .   |
|+ o+o + S   .    |
|*= ..= o . o     |
|Ooo.  o o . .    |
|o+o    . .       |
|+o.              |
+----[SHA256]-----+
```
頭空にしてEnter数回押すだけでキーペアができます。(.pubはMicrosoft Publisherと被る)
![keypair.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293888/0acd8d22-7d70-d376-2e3e-53cab1f2e7ff.png)
あとは、いつも通り秘密鍵は自分の.sshフォルダに。
公開鍵は、サーバの~/.ssh/フォルダに格納。
ubuntuの場合、OpenSSHの設定で公開鍵のデフォルト名が「authorized_keys」になっているので名前を修正して放り込む。
公開鍵のデフォルト名が気に食わないなら、sshd_configで変更できそうでしたが別に名前はどうでもいいので怖くてやってないです。
ubuntuの.sshディレクトリの所有者:グループを、使用するユーザになっていなければ変更。
Permissionはディレクトリは700、公開鍵は600。

```bash:bash
deile666@ubuntu:~/.ssh$ ls -la
drwx------ 2 deile666 deile666 4096 Sep 28  2019 .
drwxr-xr-x 9 deile666 deile666 4096 Apr 25 22:35 ..
-rw------- 1 deile666 deile666  404 Apr 25 21:47 authorized_keys
```
これでPowerShell上からssh叩けばログイン出来るはず。
github用と、ubuntuで複数のユーザを使いたかったので、私はWindows側の.ssh以下に複数の秘密鍵を作成し、configファイルを作りました。
こちらのサイトの説明がわかりやすかったです。
http://www.ellinikonblue.com/blosxom/UNIX/20150721SSH.html

なんでこんなことをやっていたのかと言うと、Minecraftのサーバを使ってる友人からModなんとかせーいって言われたのでやってました。
今日はここまで。


あ、この前の古戦場は久々に全勝して金剛取れました。

で、こいつはりんごろう。んごー。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293888/d8ac7747-8f1a-d3ca-f69f-e2c45daf7fe2.png)