SSHサーバの設定ファイルは、通常Linuxでは/etc/ssh/sshd_config、OS X Serverでは/etc/sshd_configある。通常はデフォルトの設定で、sshdを起動すれば使えるはずである。なお、OSをインストールした時点では、sshdは自動起動するようになっていないものも多い。
接続できないのは、大抵、ファイアウォールがブロックしているか、sshd自体が起動していないことが多いので、まずはその確認を。
Fedoraではインストールした時点では自動起動しないのでOS起動時に自動的に起動するようにするには、rootで
# chkconfig sshd on
と打つ。
まず、id_rsa、authorized_keysファイルは、600に設定する。/home/foo/.sshディレクトリのアクセス権は0700(0600ではダメ)に設定する。
また公開鍵認証を行いたい場合は、ホームディレクトリ(/home/foo)のアクセス権の内、groupとotherの書き込み権を切っておかなければならない。すなわちホームディレクトリのアクセス権は755か設定可能な最大のアクセス権である。
例えば、OpenSSHなのに、商用SSHの鍵を、あるいは、PuTTyの鍵を使っていたりすると、当然ながら認証が通らず、接続できない。
この場合、それぞれの形式に変換する必要がある。詳しくはこちら。
もしsshのポート番号を変えることができるようであれば、変えてしまった方がssh経由の攻撃を受けるリスクはずっと低くなる。
変更方法は、/etc/ssh/sshd_config内の
#Port 22
とコメント化されている行を
Port 22222
の様に変更して、再起動する。(この場合は22222番ポートを指定している。)
なお、OS Xの場合、ほとんどの設定は、sshd_configでできるが、ポート番号のみ、sshd_configで設定しても効果がない。
OS Xではポート番号は、
/System/Library/LaunchDaemons/ssh.plist
で設定する。具体的には、
<dict> <key>SockServiceName</key> <string>ssh</string> <key>Bonjour</key> <array>
とある部分を
<dict> <key>SockServiceName</key> <string>22222</string> <key>Bonjour</key> <array>
の様に変更する。これでデフォルトの22番から22222番に変更される。
/etc/ssh/sshd_configでポート番号を指定できるが、その際に、複数Port行を書くと、それらすべてのポートでsshが可能となる。
たとえば、
Port 22 Port 222 Port 2222 Port 22222
とした場合、sshクライアントは、22番、222番、2222番、22222番の4つのいずれかのポートで接続することができる様になる。
sshサーバの設定でCompressionの項目のデフォルト値はdelayedになっている。
最近のディストリビューションはこのデフォルト値を採用しているものが多いが、この設定だといくつかの古いsshクライアントでは圧縮転送を指定すると接続できない。その場合、/etc/ssh/sshd_configファイル内で
Compression yes
とすることによって、接続できるようになる。
IPアドレスからリモートホスト名を逆引きできないような環境からアクセスしている場合、逆引きを試みる時間分だけ時間がかかる。
この場合、
UseDNS no
と設定すると、逆引きを行わなくなる。
新しい(6.8あたり以降)OpenSSHからは弱いアルゴリズムが削除された。
そのため商用SSHクライアントからパスワードでアクセスできない。
http://togakushi.bitbucket.org/build/html/openssh-6.8.html
以前と同じようにするには、sshd_configに下記の2つを追加する。
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org Ciphers 3des-cbc,blowfish-cbc,cast128-cbc,arcfour,arcfour128,arcfour256,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
/etc/ssh/sshd_config内のSubsystem sftp /usr/libexec/openssh/sftp-serverで指定しているsftp-serverの位置が間違えている。
上記の設定をしたら、設定を反映させるためにはsshdを再起動する。通常、リモートからsshdを再起動しても、切断はされないようである。
$ sudo /etc/init.d ssh restart
最終更新日