SSHの設定

SSHはデフォルトでも活用できますが、公開鍵、秘密鍵を使った認証や、ユーザーごとのアクセス制限などを紹介します。

鍵認証をするためにSSHのクライアントの鍵を作成します。

鍵セットの作成


RSA1
$ ssh-keygen -t rsa1
 
RSA2
$ ssh-keygen -t rsa
 
DSA
$ ssh-keygen -t dsa
 

どれも作成するときにパスフレーズを聞かれます。
このパスフレーズを何も入力しないでエンターを押すと、パスフレーズなしの認証ができます(sshd_config の設定を変更する必要もある)

ここで作成した鍵セット(秘密鍵、公開鍵)はホームディレクトリの「.ssh」というディレクトリに作成されます。
各鍵の名前は以下の通り


RSA1
秘密鍵 : identity
公開鍵 : identity.pub
 
RSA2
秘密鍵 : id_rsa
公開鍵 : id_rsa.pub
 
DSA
秘密鍵 : id_dsa
公開鍵 : id_dsa.pub
 

特に指定がない限りDSAで作ったほうがいいですが、(RSAだとライセンスがどうたららしい、よくわからんが) Windows のSSHクライアントのTeraTermなどはRSA1しか対応していません。

作成したら、SSHサーバーに公開鍵をセットします。
SSHサーバーにもホームディレクトリに「.ssh」というディレクトリを作成し、そこに「authorized_keys」というファイルを作成し、流し込みます。
$ cat id_dsa.pub >> authorized_keys
もし、authorized_keys を初めて作成するようであれば、id_dsa.pub をリネームしちゃえばいいです。

authorized_keys をつくったら、必ずパーミッションを変更します。これをしないと認証してくれません。
$ chmod 600 authorized_keys 

鍵の作成は完了したので、SSHサーバーの設定をします。

/etc/ssh/sshd_config


#デフォルトでRSAもDSAもOKになっている
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
 
#鍵認証する場合はコメントを外し、noにする

PasswordAuthentication no
 
#パスフレーズなしで認証をする場合はコメントを外し、yesにする
PermitEmptyPasswords yes
 

これで、鍵を使った認証を行うようになります。

SSHのその他の設定

/etc/ssh/sshd_config


#ルートのログインを許可しない場合はコメント外してno
PermitRootLogin no
 
#特定のユーザーしかログインさせない(複数はスペース区切り)
AllowUsers kazan arc
 
#特定のユーザーだけログインさせない(複数はスペース区切り)
DenyUsers kazan
 
#特定のグループしかログインさせない(複数はスペース区切り)
AllowGroups scoutroll
 
#特定のグループだけログインさせない(複数はスペース区切り)
DenyGroups scoutroll
 

SCPの使いかた。
SCPとはSecureCopyの略で、SSHを使ってファイルをリモートに転送できます。

SCP


$ scp ファイル名 192.168.1.10:~/