現在の最大接続数取得
以下のコマンドで最大接続数が取得できる。 値の意味は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は設定なしで読み込めるようなので、 そちらの方がいいかもしれません(未確認)。