web-dev-qa-db-ja.com

新規ユーザーに公開鍵認証を追加する簡単な方法はありますか?

私は、Ubuntu12.04を使用して新しいWebLEMPサーバーに安全なユーザーをセットアップするという骨の折れる苦痛なプロセスにいます。最初はvsftpdやproftpdのようなものをセットアップするつもりでしたが、多くの人がSFTPを直接使用することを提案しました。最終的に、私には1人のプライマリユーザーがいます(これは単にrootログインを防ぐために使用します)。この新しいユーザーを作成し、公開鍵ペアを生成し、公開鍵をユーザー_~/.ssh_ディレクトリに_authorized_key_としてアップロードし、SSHポート番号を変更し、rootログインを削除し、passwordauthenticationをNOに設定して、ユーザーは自分のキーを使用してログインする必要があります。十分に簡単です(ただし、PCでの作業は、OSX/NIXの対応するものよりもはるかに頭痛の種のようです)。

私は現在、(私のWeb開発者向けに)新しいユーザーを作成しようとしています。このユーザーは、単にSFTPアクセスを持ち、担当のWebディレクトリへの公開を制限します。各ディレクトリの形式は次のとおりです。

_/var/www/sitename.com/public/
_

私の頭痛は今始まります。新しいユーザーを作成しますか?簡単。パスワードを追加しますか?公開鍵/秘密鍵が必要なことを指定する必要はありません(Sudoにアクセスすることはできません)が、問題ありません。しかし、私は次のことに苦労しています。

  • この新しいユーザーの公開鍵を実際にサーバーに保存するにはどうすればよいですか? rootユーザーとしてログインし、ホームディレクトリ内に_authorized_keys_ファイルを作成すると、root所有者とグループのアクセス許可が付与され、サーバーにログインできなくなります。同様に、これらの新しいユーザーは、パスワードによるログインが許可されていないため、自分でログインして作成することはできません。

(注:sftpを設定し、それぞれのWebディレクトリに制限するのにも苦労していますが、後で自分で理解できると思います)。

何かアドバイス?

編集

現在のプロセスは次のとおりです。

  • 個人から公開鍵を取得する
  • 次のコマンドを実行します。
#Sudo mkdir -p /home/newuser/.ssh
#Sudo nano /home/newuser/.ssh/authorized_key 
#(キーを1行にコピーして保存)
#chown -R newuser:newuser /home/newuser
#chmod 700 /home/newuser/.ssh
#chmod 600 /home/newuser/.ssh/authorized_key

これは絶対に恐ろしいことではないと思いますが、開発者の数が多い場合(さらに、SFTP部分を設定してディレクトリに制限するのにかかる時間も)、非常に苦痛に思えます。

5
JM4

ファイルの所有権を変更し、権限を適切に設定する必要があります。

$ chown -R newuser /path/to/home/.ssh
$ chmod 700 /path/to/home/.ssh
$ chmod 600 /path/to/home/.ssh/authorized_keys

このプロセスをより単純で、繰り返し可能で、監査可能にするために、ユーザー管理に構成管理システムを使用します。広く使用されているすべての構成管理システム(puppet、chef、ansibleなど)には、ユーザーを作成してキーをデプロイする機能が付属しています。構成管理システムを使用することの大きな追加の利点は、構成をソース管理で維持できることです。

10
EEAA

この新しいユーザーの公開鍵を実際にサーバーに保存するにはどうすればよいですか? rootユーザーとしてログインし、ホームディレクトリ内にauthorized_keysファイルを作成すると、root所有者とグループのアクセス許可が付与され、サーバーにログインできなくなります。

彼らがアカウントを要求するときに彼らがあなたに提供する公開鍵を使用して彼らのためにそれを作成します。適切にchownします。適切にChmodします。完了。

1
Michael McNally
/home/newuser/.ssh/authorized_key

そのタイプミスに気をつけてください:)

それは「authorized_keys」です。少なくとも30分はイライラしました。

0
Robert_101