
SSHサーバの設定は、/etc/ssh/sshd_configファイル内で行う。通常はデフォルトの設定で、sshdを起動すれば使えるはずである。なお、OSをインストールした時点では、sshdは自動起動するようになっていないものも多い。
接続できないのは、大抵、ファイアウォールがブロックしているか、sshd自体が起動していないことが多いので、まずはその確認を。
Fedoraではインストールした時点では自動起動しないのでOS起動時に自動的に起動するようにするには、rootで
# chkconfig sshd on
と打つ。
まず、/home/foo/.ssh、id_rsa、authorized_keysファイルは、600に設定する。
また公開鍵認証を行いたい場合は、ホームディレクトリ(/home/foo)のアクセス権の内、groupとotherの書き込み権を切っておかなければならない。すなわち755か設定可能な最大のアクセス権である。
もしsshのポート番号を変えることができるようであれば、変えてしまった方がssh経由の攻撃を受けるリスクはずっと低くなる。
変更方法は、/etc/ssh/sshd_config内の
#Port 22
とコメント化されている行を
Port 22222
の様に変更して、再起動する。(この場合は22222番ポートを指定している。)
sshサーバの設定でCompressionの項目のデフォルト値はdelayedになっている。
最近のディストリビューションはこのデフォルト値を採用しているものが多いが、この設定だといくつかのsshクライアントでは圧縮転送を指定すると接続できない。その場合、/etc/ssh/sshd_configファイル内で
Compression yes
とすることによって、接続できるようになる。
IPアドレスからリモートホスト名を逆引きできないような環境からアクセスしている場合、逆引きを試みる時間分だけ時間がかかる。
この場合、
UseDNS no
と設定すると、逆引きを行わなくなる。
/etc/ssh/sshd_config内のSubsystem sftp /usr/libexec/openssh/sftp-serverで指定しているsftp-serverの位置が間違えている。
上記の設定をしたら、設定を反映させるためにはsshdを再起動する。通常、リモートからsshdを再起動しても、切断はされないようである。
$ sudo /etc/init.d ssh restart