█ █ █▀█ █ █   █▀▄ ▀▀█     sysInfo    FAQ     HowTo    ToS    contact    signUp 
█ █ █ █ ▄▀▄   █▀▄ ▄▀                               
▀▀▀ ▀ ▀ ▀ ▀ ▀ ▀▀  ▀▀▀                                               users: !
===============================================================================

HowTo

===============================================================================

Generate, secure and use ssh keys +

# Generating ssh key pairs #


To connect to UNX.BZ you need to first provide us with an ssh Public Key. The Public Key allows the ssh server to verify you are who you say you are via a challenge / response that only your ssh client can answer correctly using the corresponding Private Key (which you should keep to your self, as the name implies)


Here is how you can generate your ssh key pair on various operating systems...


# FreeBSD / GNU/Linux / OSX / Other Unix-like systems #


Open your terminal emulator and enter the following command:


ssh-keygen -t ed25519 -a 200 -f id_ed25519_unx.bz -C "my_username@unx.bz"


Let's break down what each part of the command does:


-t sets the key type (ed25519 in this case, which is what we recommend)


-a sets the number of kdf rounds. We recommend at least 100 but if you have a fast computer you can use 200 or more. A higher number of kdf rounds on a key with a passphrase (which we strongly suggest you use) rounds will slow down a brute force attack if your private key ever falls into the hands of a malicious attacker. It will also slow down the amount of time ti takes to decrypt the key. If you use an ssh agent to cache your decrypted keys in memory that short delay wont be a big deal as you will only feel it once.


-f sets the name of the key files written to disk. It's conventional to include the name of key type there but not a requirement. It's also conventional to put some hint of what the key will be used for in the name, which helps keep things organized when you have many keys.


-C sets the comment stored inside the keys. It's conventional to use your username or your username@the_server_name for the server in question.



[ PRO TIP ] KEEP THAT KEY SECURE!
We highly recommend you use a strong passphrase on your ssh key when prompted to enter one regardless of what system you are on. It may seem like a hassle but it is the only thing protecting your Private Key if it ever falls into the wrong hands. If you use an ssh agent (ssh-agent), which is background program that securely holds your decrypted private keys in memory during a session, you will only ever have to enter the passphrase once. There are password safes like the multi-platform KeePassXC which can store, unlock (with the passphrase) and register keys with your ssh agent, making using a passphrase and ssh agents an almost entirely friction-less exercise. See the KeePassXC documentation for details on how it works and how to set it up. (You DO use a password safe of some kind, don't you?)


Copy and paste the Public Key in the signUp form and it will be setup for use when you account is created.



# Windows #


If you are on Windows 10 or 11, you can use the built-in OpenSSH client tools via Command Prompt (CMD) or PowerShell. Press the Windows key, type "cmd" or "powershell", and select the application from the search results to launch it. At the prompt, type the ssh-keygen command just as you would on a Unix-like system:


ssh-keygen -t ed25519 -a 200 -f id_ed25519_unx.bz -C "my_username@unx.bz"


The Public Key file will have a .pub appended to the end of the file name. You can use the type command to print the contents of the public key file to the console so you may copy the contents to paste into the signUp form. You can alteratively open the Public Key in Notepad to cpoy/paste the contents.


Alternatively, or if you are on a pre Windows 10 system, you can use PuTTY . See the documentation on the PuTTY web site for how to use the included PuTTYGen program to generate key pairs. PuTTY is a great ssh client for Windows you might want regardless of if you are able to generate keys from the command line. It includes a bookmark feature where you can store the sites you connect to. Very convenient! It's available for other operating systems if you like those sorts of GUI feature.



# Using a Private Key to connect to UNX.BZ #


The private key file needs strict permissions (read/write only for the owner, typically 600) to be used. If the key isn't already set to that, you can set it via the chmod command...


chmod 600 /path/to/your/private_key_file


You can now use the Private Key connect to the UNX.BZ


ssh -i /path/to/your/private_key_file username@unx.bz



Change your shell in FreeBSD +

Changing the default shell in FreeBSD is easy. The first step is to make sure the shell you want to use is actually installed. Type this in the shell to see what shells are available on the system:

cat /etc/shells

If you see a shell you are interested in, you can switch to it immediately by simply running it in your current shell:

bash

If you love it and want to make the change permanent you can use the chsh command to change your shell in /etc/passwd (you must use the full path to the shell as shown in the /etc/shells file)

chsh -s /bin/bash


Use the .plan and .project files +

.plan and .project are optional simple text files in the root of your home directory. You can edit them with any text editor. They can be used to share information with other users on the system when they use the finger command.

Each has a similar but slightly different purpose.

.plan is used to share longer free-form personal information and status. If you only intend to create one of these files, .plan is the one you want to create. You can put any info you want to share about yourself or your interests in .plan . Don't go too crazy with it though (like create an entire page worth of text). That's what web pages are for! Remember it will be viewable by anyone logged in to the server so don't share information you with to remain private.

.project is a (preferably) concise summary of what you are working on at the moment. But it doesn't have to be. Keeping it concise is just a matter of convention.

As they are both just text files, you can update them programmatically if such an idea appeals to you. For example, you might put the results of the short output of some cron job or script in .project so that yourself or others can easily grab it using the finger command. This would definitely be an unconventional use for the .project file but it would also be perfectly valid use for it if that's what you want to use it for. It's your .project file!


===============================================================================