I'm taking over a bunch of servers as a newbie sysadmin, which include a frontend web server, and several backend servers that hold databases that include private information of the users of the web service.
For a starter, I disabled SSH password authentication. I'm wondering what else I should take care of, in terms of login authentication, to secure the servers with reasonable strength (first priority), and also to ease the task of future administration issues (second priority).
Question 1: Is it recommended to setup a "stepping stone" server, like in diagram (2) below, which will be the only server with port 22 open to the wild? Will it make the backend servers more secure?
(1) Flat-shaped -- no stepping stone (current setup)
[dev machine] - pub key auth - [Frontend]* private key A public key A
[dev machine] - pub key auth - [Backend]* private key A public key A
(2) Star-shaped -- with stepping stone
[dev machine] - pub key auth - [S- stone] - ? - [Frontend/Backend]* private key A public key A
Question 2: In case of this setup, which authentication method is recommended for internal login? (a) use another key pair: priv key B - pub key B (b) use ssh-agent (c) reuse key pair A: put priv key A to the s- stone (c) use password auth
Note: "authentication graph" in the question title is a made-up word. I'd be glad to know if there's a term for this kind of problem -- which server to allow login from for which server.