2024 May. 26.
2024 Jan. 20.
2023 Dec. 30.
2023 Aug. 13.
2023 Jun. 25.
2023 May 05.
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.
鍵ファイルについて
公開鍵
サーバーに置く。クライアントには不要。
サーバーの接続ユーザーの${HOME}/.ssh/authorized_keysファイルの末尾に新たな公開鍵ファイル内容を連結していく。
公開鍵ファイルは、その内容をサーバーの authorized_keys に追記したら削除してよい。
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 )
$ sudo apt update && sudo apt install ssh
(Arch系のManjaro Linux)
opensshパッケージ
Port xx # xx : SSHを受け付けるポート番号
# RSAAuthentication no # RSAを利用しない(ed25519を利用する)不要。Deprecated
PubkeyAuthentication yes # 公開鍵認証
AuthorizedKeysFile %h/.ssh/authorized_keys # %hはホームディレクトリを表現
# RSAAuthentication no # RSAを利用しない(ed25519を利用する)不要。Deprecated
PubkeyAuthentication yes # 公開鍵認証
AuthorizedKeysFile %h/.ssh/authorized_keys # %hはホームディレクトリを表現
AllowUsers USER1 USER2 USER3 ## 複数のユーザーはカンマではなく空白で並べる
PermitRootLogin no # "PermitRootLogin prohibit-password"は公開鍵認証を許す設定
PermitEmptyPasswords no
PermitRootLogin no # "PermitRootLogin prohibit-password"は公開鍵認証を許す設定
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 でもよい
サーバー側ファイアウォール設定
デーモン起動設定
鍵ファイル作成
サーバー上で、ログインを許す一般ユーザーで鍵を生成するので、rootユーザーになっていたら、一般ユーザーに切り替える。
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
-N:付けなければインタラクティブに尋ねられるので、付けなくてよい。
(例) -N オプションを付ける場合
$ ssh-keygen -t ed25519 -N "PASSPHRASE" -f ~/.ssh/SRV_HOST-CLI_HOST-USER-ed25519
$ ssh-keygen -t ecdsa -b 521 -N "PASSPHRASE" -f ~/.ssh/SRV_HOST-CLI_HOST-USER-ecdsa521
$ ssh-keygen -t rsa -b 4096 -N "PASSPHRASE" -f ~/.ssh/SRV_HOST-CLI_HOST-USER-rsa4096
$ ssh-keygen -t ed25519 -N "PASSPHRASE" -f ~/.ssh/SRV_HOST-CLI_HOST-USER-ed25519
$ ssh-keygen -t ecdsa -b 521 -N "PASSPHRASE" -f ~/.ssh/SRV_HOST-CLI_HOST-USER-ecdsa521
$ ssh-keygen -t rsa -b 4096 -N "PASSPHRASE" -f ~/.ssh/SRV_HOST-CLI_HOST-USER-rsa4096
公開鍵配置
公開鍵は
~/.ssh/authorized_keys
と連結(追記)する必要がある。公開鍵がauthorized_keysに連結されていれば .pubファイルは削除してよい。
authorized_keysの属性は644にしておく。
$ cat ~/.ssh/SRV_HOST-CLI_HOST-USER-ed25519.pub >> ~/.ssh/authorized_keys
$ chmod 644 authorized_keys
$ chmod 700 ~/.ssh$ chmod 600 SRV_HOST-CLI_HOST-USER-ed25519
秘密鍵配置
${HOME}/.sshの属性は 700 にする。
秘密鍵のファイル属性は600にする。
(3) 設定状況確認:> ssh-add -l
(4) ssh接続コマンド
ssh -p PORT USER@HOSTNAME
%userprofile%\.ssh フォルダーに 次の書式で config ファイルを作成する。
host ACCESSNAME
user USER
user USER
hostname SERVER.IP.ADDRESS
port SERVERPORT
簡略化されたSSH接続コマンドの入力
> ssh ACCESSNAME