Thanks mjrich. I'd made some simple changes to the ssh config but I hadn't done obvious things like change the default port or lock down the users with access.
For other Linode newbies who are wanting to configure your ssh, there's a guide on the config file (for Debian at least) here:
http://www.debian-administration.org/articles/455. You'll have to decide on which changes are worth implementing as some have downsides (like limiting the computers or ISPs you can log in with).
The guide doesn't seem to say directly, but for Debian the config file is /etc/ssh/sshd_config. If you want ssh to accept the changes, restart it with /etc/init.d/ssh restart.
Big note: if you're playing with this, I think it's a good idea to have a backup terminal logged in with ssh. If you manage to make ssh a bit too secure, you won't be able to log back in! Check after you've made the changes whether you can log back in, but have another terminal logged in in case you need to make emergency changes.
The lines I've changed are:
Port yoursshport - change this from the default 22 to something higher. You'll probably need to specific the port when you log in with ssh from now on though (on MacOSX, it's now ssh
yourlogin@example.com -p yoursshport).
Protocol 2 - the newer protocol is more secure, so I don't need protocol 1
PermitRootLogin no - it's better to login as another user, then use su to change to root. Make sure you create a new user first!
AllowUsers yourlogin - if like me only you need access to the server, I think it makes sense to lock down access to just one account. You can always change to other accounts once you've logged in.
I'm currently debating whether I should lock the whole system down to public keys only. On the plus side, it's a step up in security. On the minus, if I lose my key then I'm completely locked out. The same applies to locking down to just certain ISP ranges - I just don't know if the one I use to log in with is going to change in the near future and possibly without my control. With all the other changes I'm thinking I might need to trade off accessibility for security there.
Any other SSH config changes I've missed?
Also: re: access attempts: should I just be monitoring them, or actively locking them down? Is there an easy way to do that?
Edit: And I guess the thing I'm most concerned about is someone logging in without me spotting it. I'm assuming that whatever they do they'll turn up in the logs, but I should look into fining ways to inform me about any shenanigans going on behind my back.