Last-modified: 2020-07-12 (日) 01:22:18
SSH/チートシート

高セキュリティ設定

/etc/ssh/sshd_config 末尾に以下を入れておく
sshd_configは同設定値の上書きをしない挙動をするため、以下の設定がすでにある場合はコメントアウトする
(もしくは以下の設定を先頭に入れるか、既存のsshd_configを消して置き換える方法もあるが、いずれもリスクがある)

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
-
|
!
-
!
-
|
!
-
!
 
-
!
-
!
-
!
-
!
 
-
|
|
!
# カスタム設定
# ポート
Port <任意>
# 接続可能アドレス(IPv6での待ち受けが必要なら有効にする) 
ListenAddress 0.0.0.0
#ListenAddress ::
# 許可ユーザー
AllowUsers <許可ユーザー名>
# フォワード禁止
AllowTcpForwarding no
X11Forwarding no
# ログレベル
LogLevel VERBOSE
# rootでのログイン禁止
PermitRootLogin no
# 空パスワード禁止
PermitEmptyPasswords no
# パスワード認証禁止
PasswordAuthentication no
ChallengeResponseAuthentication no
# ssh1禁止(Deprecated option)
#RSAAuthentication no
# ssh2許可
PubkeyAuthentication yes

設定確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
-
!
 
-
!
-
!
# テスト
sshd -t
 
# デフォルト値確認
sshd -T -f /dev/null
# 設定反映後の値確認
sshd -T -f /etc/ssh/sshd_config

作成

OpenSSH

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
-
|
!
-
!
 
-
!
 
-
!
# -C ""を付けないと、公開鍵の末尾にホスト名がコメントとして追加された
# -fを付けないと、~/.ssh/下に固定名で作成される
 
# RSA 4096bit
ssh-keygen -t rsa -b 4096 -C "" -f <出力ファイルパス>
 
# ECDSA(楕円曲線DSA)
ssh-keygen -t ecdsa -b 256 -C "" -f <出力ファイルパス> 
 
# ed25519(ECDSAの別実装)
ssh-keygen -t ed25519 -C "" -f <出力ファイルパス>

Putty

Everything is expanded.Everything is shortened.
  1
-
# Windows上でputtygen.exeを使う

秘密鍵変換

OpenSSH→Putty

Everything is expanded.Everything is shortened.
  1
  2
-
!
# puttygen がなければ先に、apt-get install putty-tools
puttygen <秘密鍵パス> -o <出力先秘密鍵パス(e.g. foo.ppk)> -O private

Putty→OpenSSH

Everything is expanded.Everything is shortened.
  1
 
ssh-keygen -i -f <対象ファイルパス> > <出力先ファイルパス>

パスフレーズ変更

OpenSSH

Everything is expanded.Everything is shortened.
  1
 
ssh-keygen -p -f <対象ファイルパス>

Putty

Everything is expanded.Everything is shortened.
  1
-
# Windows上でputtygen.exeを使う

公開鍵追加

ローカルへ追加

Everything is expanded.Everything is shortened.
  1
  2
  3
-
|
!
# 間違って新規作成しないように注意
# authorized_keysはモードビットが600でなければいけない
cat <公開鍵パス> >> ~/.ssh/authorized_keys

リモートへ追加

Everything is expanded.Everything is shortened.
  1
  2
-
!
# パスワードでSSHログイン出来る環境でしか使えない
ssh-copy-id -i <公開鍵パス> <SSHユーザー>@<ホスト名>