2022 Oct. 01.
2022 Feb. 08.
2021 Nov. 23.
2021 May 02.
2021 Apr. 30.
2021 Mar. 25.
2021 Feb. 05.
2021 Jan. 31
2019 Oct. 12.
2018 Sep. 01.
2017 Feb. 12.
2016 Dec. 03.
クライアント側で作成したなら、それをサーバーにコピーする。
2017 Feb. 12.
2016 Dec. 03.
鍵ファイルについて
公開鍵
ファイルパス SERVER: ~/.ssh/KEYFILE.pubクライアント側で作成したなら、それをサーバーにコピーする。
KEYFILE.pubのファイル属性は 644 。
サーバーの authorized_keys に追記したら以後不要なので削除してよい。
authorized_keysの属性は 600 。
このファイル名を変更した場合は、ssh接続時に
$ ssh –i ~/.ssh/KEYFILE
と -i オプションを付ける。
秘密鍵
ファイルパス CLEINT: ~/.ssh/KEYFILEこのファイル名を変更した場合は、ssh接続時に
$ ssh –i ~/.ssh/KEYFILE
と -i オプションを付ける。
ファイル属性は必ず 600 にすること。
接続したことのあるSSHサーバ証明書が格納されるファイル。
ed25519(EdDSA) 鍵長はない
ecdsa(鍵長 521bit 384bit 256bit)
rsa (鍵長 4096bit 3072bit 2048bit)最も広く使用されているため、最もよくサポートされている。
DSA 非推奨。OpenSSH 7.0からはデフォルトで無効化。SSH2で使える。 鍵長が1024bit。
RSA1 非推奨。SSH protocol 1で利用できる。
クライアントが利用できる暗号にする。
EdDSA、2048bitもしくは4096bitのRSA利用がよい。
時とともに古い方式となるので、時々見直す。
known_hostsファイル
ファイル名 CLEINT: ~/.ssh/known_hosts接続したことのあるSSHサーバ証明書が格納されるファイル。
暗号種類
(高強度順に)ed25519(EdDSA) 鍵長はない
ecdsa(鍵長 521bit 384bit 256bit)
rsa (鍵長 4096bit 3072bit 2048bit)最も広く使用されているため、最もよくサポートされている。
DSA 非推奨。OpenSSH 7.0からはデフォルトで無効化。SSH2で使える。 鍵長が1024bit。
RSA1 非推奨。SSH protocol 1で利用できる。
クライアントが利用できる暗号にする。
EdDSA、2048bitもしくは4096bitのRSA利用がよい。
時とともに古い方式となるので、時々見直す。
インストール
( Ubuntu )
# apt update && apt install ssh
(Arch系のManjaro Linux)
opensshパッケージ
Port 22
RSAAuthentication yes
PubkeyAuthentication yes ## 公開鍵認証
AuthorizedKeysFile %h/.ssh/authorized_keys
RSAAuthentication yes
PubkeyAuthentication yes ## 公開鍵認証
AuthorizedKeysFile %h/.ssh/authorized_keys
AllowUsers USER1 USER2 USER3 ## 複数のユーザーはカンマではなく空白で並べる
PermitRootLogin no
PermitEmptyPasswords no
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
ChallengeResponseAuthentication noKbdInteractiveAuthentication no
## 参考 ##
OpenSSH の ChallengeResponseAuthentication と PasswordAuthentication | CentOS | daily memorandum 3.0.0
サーバー側設定 /etc/hosts.allow を編集
sshd: ALL
sshd: ALL
## ALLは all でもよい
サーバー側ファイアウォール設定
# ufw enable
# ufw allow from any to any port 22 proto tcp
# ufw allow from any to any port 22 proto udp
# ufw allow from any to any port 22 proto tcp
# ufw allow from any to any port 22 proto udp
# ufw reload
事前テスト
# sshd -t
"sshd: no hostkeys available" となったら、
# ssh-keygen -A
デーモン起動設定
# systemctl enable sshd.service
鍵生成
サーバー上で、ログインを許す一般ユーザーで鍵を生成するので、rootユーザーになっていたら、一般ユーザーに切り替える。
-P:付けなければインタラクティブに尋ねられるので、付けなくてよい。
-f:拡張子を付けない。普通は ~/.ssh/ID-FILE 。秘密鍵と公開鍵のペアが作られる。
(例)
$ ssh-keygen -t ed25519 -f ~/.ssh/SERVER-USER-CLIENT-ed25519
$ ssh-keygen -t ecdsa -b 521 -f ~/.ssh/SERVER-USER-CLIENT-ecdsa521
$ ssh-keygen -t ecdsa -b 384 -f ~/.ssh/SERVER-USER-CLIENT-ecdsa384
$ ssh-keygen -t ecdsa -b 256 -f ~/.ssh/SERVER-USER-CLIENT-ecdsa256
サーバーの ~/.ssh 内に公開鍵を配置する。
(例)
$ ssh-keygen -t ed25519 -f ~/.ssh/SERVER-USER-CLIENT-ed25519
$ ssh-keygen -t ecdsa -b 521 -f ~/.ssh/SERVER-USER-CLIENT-ecdsa521
$ ssh-keygen -t ecdsa -b 384 -f ~/.ssh/SERVER-USER-CLIENT-ecdsa384
$ ssh-keygen -t ecdsa -b 256 -f ~/.ssh/SERVER-USER-CLIENT-ecdsa256
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/SERVER-USER-CLIENT-rsa4096
サーバーの ~/.ssh 内に公開鍵を配置する。
公開鍵は
~/.ssh/authorized_keys
と連結(追記)する必要がある。公開鍵がauthorized_keysに連結されていれば *.pubファイルは削除してよい。
authorized_keysの属性は600にしておく。
$ cat ~/.ssh/SERVER-USER-CLIENT-ed25519.pub >> ~/.ssh/authorized_keys
( $ rm ~/.ssh/SERVER-USER-CLIENT-ed25519.pub )
$ chmod 700 ~/.ssh
$ chmod 600 id_rsa authorized_keys
connect botならばSDカード内の任意のフォルダに。
connect botの鍵設定は fnya.cocolog-nifty.com/blog/2012/03/connectbot-andr.html を参照。
connect botの鍵設定は fnya.cocolog-nifty.com/blog/2012/03/connectbot-andr.html を参照。
クライアントからサーバーへの接続