Setting up a SSH server

From Alpine Linux

If you need to administer a Alpine Linux box, you can install and use openssh. Openssh is used to provide a secure encrypted communications between you and the host where openssh is running (the ssh-server is called sshd and the ssh-client is called ssh).

Installation

Install package:

apk add openssh

Note: If you want the ACF-frontend for openssh, you should install 'acf-openssh' instead (assuming that you have setup-acf)

Make it autostart

Next time you reboot your Linux box, you would probably want your sshd to automatically start.

rc-update add sshd

You can check your boot services:

rc-status

Start it up now

The reason we want to manually start sshd at this moment is that we want sshd to create some initial files that he needs. After they are created, we can permanently save them.
Next reason is... we don't have time to wait for the box to reboot ;-)

/etc/init.d/sshd start

Note: Don't forget to permanently save your settings by using the 'lbu ci' command when you are done.

Fine tuning

The default config that comes with openssh has pretty good default values.
But sometimes you would like to fine-tune things. We show some examples below on what you might want to do.

Note: You are _not_ required to follow this #Fine_tuning section. You can skip it if you want to make things easy!

The fine-tuning is done by editing /etc/ssh/sshd_config
"#" marks that the rest of the line should be ignored by sshd. Everything right to the "#" is treated as comments.

UseDNS no   # By setting this to no, you could increase speed when the client starts to connect to this ssh-server
PasswordAuthentication no   # Instead you could use private/public keys to authenticate to this box (this increases security for the box)

Many other options are found in /etc/ssh/sshd_config. The describing text that comes in the same file will guide you in your fine-tuning.

Firewalling

As default, sshd will communicate on port '22' using protocol 'TCP'.
You would need to make sure that the box where sshd is running, doesn't block your connection attempts on 22TCP.
If you still have trouble accessing your box, make sure that there is no other firewall blocking your connection.

Sometimes 22TCP is blocked by some firewall that you can not control. In those cases you might want to configure sshd to communicate on some other port.
In that case you change /etc/ssh/sshd_config to reflect your needs.
But before you do so, you need to check so you don't use a port that already is in use. (You can check this by using the command 'netstat -ln' on the box where you plan to run sshd)

Port 443   # Use whatever port number that fits your needs

You need to restart sshd after you done you modifications.

/etc/init.d/sshd restart

Save settings

If you already haven't done so, save all your settings

lbu ci

Alternative

Alternatively you can use Dropbear. Install it:

apk add dropbear

Start it:

rc-service dropbear start

And if you are happy with it, add it to the default runlevel:

rc-update add dropbear

Use the following command to check all available server options:

dropbear -h

The config file is located at /etc/conf.d/dropbear.

Dropbear also includes an SSH client which in its simplest form can be used like this:

dbclient x.x.x.x

(where x.x.x.x is the destination server). Use 'dbclient -h' to see all available options.