現在の最大接続数取得
以下のコマンドで最大接続数が取得できる。 値の意味はmanコマンドで調べること。
/usr/sbin/sshd -T | grep maxstartups
接続が遅い場合の対処方法
自分は以下のパターンに遭遇しました。
- デフォルトゲートウェイが正しくない場合
UseDNS yes
でかつ接続元に逆引き設定がされていない場合
UseDNSは通常はnoで構わない
UseDNSを使う必要があるのは、ホストベースの認証を行うときだけです。 rhostsを使った認証は設定すべきではなく、 公開鍵認証かつホストベースの認証を行ないたいときは稀です。
OpenSSHも6.8よりUseDNSはデフォルトでno
になっています1。
sshd(8): UseDNS now defaults to ’no’. Configurations that match against the client host name (via sshd_config or authorized_keys) may need to re-enable it or convert to matching against addresses.
PermitRootLogin
PermitRootLoginはyes/no以外にもいろいろ書けます。
sshd_config(5) - OpenBSD manual pages
パラメータ | パスワード認証 | 公開鍵認証 | 公開鍵認証(コマンド実行のみ) |
---|---|---|---|
yes | ◯ | ◯ | ◯ |
prohibit-password / without-password | ✕ | ◯ | ◯ |
forced-commands-only | ✕ | ✕ | ◯ |
no | ✕ | ✕ | ✕ |
prohibit-password
はOpenSSH 6.9より追加されています(リリースノート参照)。
環境変数
デフォルトでは/etc/profileなどが読み込まれないため、 ログインする場合と、SSH経由では主に以下の違いがあります。
- PATHに/usr/local/sbinなどが含まれない
- HOSTNAME環境変数が設定されない
PermitUserEnvironmentオプションを有効にすると、 ~/.ssh/environmentファイルを読むことで、環境変数の設定が可能。
~/.ssh/rcは設定なしで読み込めるようなので、 そちらの方がいいかもしれません(未確認)。