継続的インテグレーション(CI)サーバーとテストWebサーバーをセットアップしています。 CIサーバーが公開鍵認証を使用してWebサーバーにアクセスすることを希望します。 Webサーバーでユーザーを作成し、キーを生成しました
Sudo useradd -d /var/www/user -m user
Sudo passwd user
Sudo su user
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/var/www/user/.ssh/id_rsa):
Created directory '/var/www/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/www/user/.ssh/id_rsa.
Your public key has been saved in /var/www/user/.ssh/id_rsa.pub.
ただし、CIサーバーはキーをホストにコピーしますが、それでもパスワードを要求します
ssh-copy-id -i ~/.ssh/id_rsa.pub user@webserver-address
user@webserver-address's password:
Now try logging into the machine, with "ssh 'user@webserver-address'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
Webサーバーを確認したところ、CIサーバーの公開鍵がWebサーバーのauthorized_keysにコピーされましたが、接続するとパスワードを要求されます。
ssh 'user@webserver-address'
user@webserver-address's password:
作成したユーザーではなくrootユーザーを使用しようとすると(両方のユーザーがコピーされた公開鍵を使用します)。公開鍵に接続します
ssh 'root@webserver-address'
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.18-274.7.1.el5.028stab095.1 x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Wed Apr 11 10:21:13 2012 from *******
root@webserver-address:~#
あなたの質問は、CIサーバーからWebサーバーにログインしたいと言っています。ただし、Webサーバーでキーを作成したと言います。これが単なる誤解なのか、タイプミスなのかはわかりません。
キーを使用してCIサーバーからWebサーバーにログインできるようにするために必要な作業の概要は次のとおりです。
id_rsa.pub
)をWebサーバーにコピーして、ログインするユーザーごとに(root
、user
などの~/.ssh/authroized_keys
ファイルに入れます。 )。私は通常、scp
を使用してファイルをサーバーにコピーします。ユーザーごとに使用する複数のキーがある場合は、それらをauthorized_keys
に追加します。それ以外の場合、これがそのユーザーの唯一のキーである場合は、id_rsa.pub
の名前をauthorized_keys
に変更できます。.ssh
フォルダーのアクセス許可がchmod 644 .ssh
で644であり、許可されたキーファイルのアクセス許可がchmod 700 .ssh/authorized_keys
で700であることを確認してください。ssh user@webserver
パスワードを要求するべきではありません(これは、sshd構成ファイルに関する@khaledのアドバイスに従っていることを前提としていますが、デフォルトでは通常、パスワードの前にキー認証を許可するように設定されています)。