web-dev-qa-db-ja.com

sshのログインシェルなしでUbuntuバックアップユーザーを設定するにはどうすればよいですか?

Ubuntu16.04サーバーとデスクトップの小さなネットワークをバックアップするようにAmandaをセットアップしています。 U1がバックアップサーバーで、U2がクライアントであるとしましょう。それぞれに、ログインシェルまたはパスワード(Ubuntuでデフォルトで作成)のない「backup」という名前のアカウントがあります。が欲しいです backup@U1からSSHへbackup@U2パスワードではなくキーを使用します。私の理解では、バックアップにログインまたはパスワードがなく、sshキーでのみアクセスできる方が安全です。

SSHキーを生成し、U1の公開キーをU2のバックアップホームディレクトリにコピーしました/var/backups/.ssh/authorized_keys(所有者としてバックアップを使用)。 U2のホストキーもU1にコピーしました/var/backups/.ssh/known_hosts。 U1からU2にSSHで接続しようとすると

Sudo -u backup ssh -i /etc/amanda/MyConfig/ssh-key U2.example.com

私は得る

This account is currently not available.

U1の自分のアカウントからU2の別のアカウントにsshを実行できるので、2台のマシン間でsshが機能していることがわかります。メッセージから、バックアップアカウントにパスワード/ログインがないことが問題だと思います。 AmandaがクライアントにSSHで接続してネットワークをバックアップできるように、これを安全に設定するにはどうすればよいですか?

1
Paul B

ユーザーを作成し、アカウントをロックし、SSHキーを追加すれば完了です。アカウントのパスワードをロックしても、SSHキーは引き続き機能します。

ログインを許可するには、少なくともリモートシステムにユーザー名が必要です。しかし、それはユーザーがパスワードにアクセスできる必要があるという意味ではありません。したがって、これを実行する場合は、バックアップユーザー名がbackupであると想定します。これは非常に一般的であるため、これは悪いユーザー名であることに注意してください。あなたに適した8文字のコンボを考えてください。とにかく、次のようなユーザーを作成します。

Sudo adduser backup

さて、パスワードの設定を含め、adduserを実行するときに得られる通常の質問の山を通り抜けてください。

次に、そのユーザーが作成されたら、これを実行してアカウントをロックします。

Sudo passwd -l backup

これで、そのユーザーのアカウントでSSHキーを設定すると、SSH経由でログインできますが、パスワードログイン経由ではログインできなくなります。

1
JakeGould