May 24, 2009

UbuntuとSSH

SSH

Ubuntuがインストールされたサーバーマシンをクライアントマシンから操作する設定を行います。
>(ちなみにこのクライアントはIntel Macです)

Server side:

まず、初めにサーバー側でインストールします。

$ ps -C sshd
$ sudo apt-get install ssh
$ sudo vi /etc/ssh/sshd_config/
PasswordAuthentication no # パスワードでのログインを許可しない
PermitRootLogin no # ルート権限でのログインを許可しない
PermitEmptyPassword no # パスワードなしのログインを許可しない
AllowUsers test # 指定したユーザー(今回の場合は"test")のみログインを許可する
$ sudo /etc/init.d/ssh restart # sshを再起動します
$ sudo lsof -nPi:22 # sshが問題なく動作しているかを確認します

なお、このタイミングであらかじめ.sshディレクトリを作成しておきます。

$ mkdir .ssh
Client side:

クライアントマシン側で鍵の生成をします。
なお、鍵には2種類あります。(生成時に自動的に2種類用意されます)

  • 秘密鍵:id_rsa
  • 公開鍵:id_rsa.pub
ssh-keygen -t rsa # $HOME.ssh/にファイルは保存されます
scp .ssh/id_rsa.pub username@server IP:~/.ssh # 公開鍵のみをサーバーに転送します
Server side:

サーバー側でauthorized_keysを用意し、そこにid_rsa.pubの情報を登録します。

$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Client side:

クライアントからssh接続できるかどうか確かめます。
この確認ができたら、設定は完了です。

$ ssh -2 username@serverIP