公開鍵認証を用いた SSH 接続の設定方法

投稿者: | 2011/09/16

鍵の作成(最初の 1 回のみ)

まずはクライアント(接続元)の鍵を作成します.
以下のコマンドを実行し,パスフレーズを入力して鍵を生成してください.

$ ssh-keygen -t rsa

これで ~/.ssh/id_rsa に秘密鍵が,~/.ssh/id_rsa.pub に公開鍵が生成されます.
次に,公開鍵(~/.ssh/id_rsa.pub)をサーバに設置します.

コンソールからサーバにログインし,id_rsa.pub をサーバのホームディレクトリにコピーした後,以下のように公開鍵を設置します.

$ mkdir ~/.ssh
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/id_rsa.pub

これでユーザは以下のコマンドで公開鍵を用いて SSH 経由でサーバに接続することができます.

$ ssh username@example.com

~/.ssh/config の設定

接続するサーバが増えてくると長ったらしい ssh コマンドを打つことが面倒くさくなります.
こういう場合は ~/.ssh/config を書いてしまいましょう!
例えば以下のような内容を ~/.ssh/config へ書くと…

 Host example
  HostName example.com
  User username

 Host rubicon
  HostName rubicon.example.com
  User taro.yamada

 Host scalar
  HostName scalar.example.com
  User 999x999x
  IdentityFile ~/.ssh/id_rsa.scalar  

 Host *
  Protocol 2
  Compression yes
  CompressionLevel 9
  ForwardX11 no
  ServerAliveInterval 60
  IdentityFile ~/.ssh/id_rsa

以下のように接続することができます.

username@example.com へ秘密鍵 ~/.ssh/id_rsa を使って接続

$ ssh foster

999x999x@scalar.example.com へ秘密鍵 ~/.ssh/id_rsa.scalar を使って接続

$ ssh scalar

taro.yamada@rubicon.example.com へ秘密鍵 ~/.ssh/id_rsa を使って接続

$ ssh rubicon

X Window を使いたいときは ssh のオプションに -X を指定してください.

$ ssh -X rubicon

または ~/.ssh/config の該当ホストに ForwardX11 yes を書き足します.

 Host rubicon
  HostName rubicon.example.com
  User taro.yamada
  ForwardX11 yes