Home SSH / Clientconfig – Unknown wrongfully
Post
Cancel

SSH / Clientconfig – Unknown wrongfully

SSH / Clientconfig – Unknown wrongfully

If you have several Linux servers in your care and are allowed to maintain them, you surely know the problem of different SSH keys for different customers, environments or security aspects. Now of course there are several solutions, one approach could be to use the putty agent (under Windows). But if you work with a Linux client or use one in a private environment, it will be difficult. Of course there are also possible agents like keychain. But there are also possibilities with the already installed openssh-client, which I have to introduce to you here. For some reason this possibility is quite unknown, we want to change that. By the way this usage also works for rsync and other SSH based tools.

Config file for the SSH client

With the configfile located in the .ssh directory of the userhome, you can store all possible settings for the SSH client, including connection settings like:

1
2
ForwardAgent yes 
ForwardX11 yes

But what I actually wanted to talk about is the fact that you can also pass the IdentityFile at this point, even bound to a host context. Let’s assume you have one key for the host fu-solutions.de and another for weichert.it and don’t want to pass usernames or the keyfile. Without setting up an alias. The corresponding host context in ~/.ssh/config would look like this:

1
2
3
4
5
6
7
8
9
ForwardAgent yes 
ForwardX11 yes

Host fu-solutions.com 
    User Admin1 
    IdentityFile ~/.ssh/key-file1 
Host soft.it 
    User Admin2  
    IdentityFile ~/.ssh/key-file2

Now it is enough to enter the command line ssh weichert.it or ssh fu-solutions.de and after a confirmation the connection is automatically established with Admin2 or Admin1 (depending on the destination) and the corresponding IdentityFile. Via Host or Match the targets or environments can be differentiated.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Used for connections to fu-solutions.de
Host fu-solutions.de
  User Admin1
  IdentityFile ~/.ssh/key-file1
# Used for connections to weichert.it
Host weichert.it
  User Admin2
  IdentityFile ~/.ssh/key-file2
# Used for all host with domain "domain.tld"
# without an identityfile
Host *.domain.tld
  User Admin3

# Match is used for combining host conditions.

This should be an incentive at this point, I hope I could give you a new and interesting opportunity to organize the SSH connections on a jumphost or your client. More information about the possibilities and possible configuration parameters can be found on the page ssh.com or in the manpage for ssh_config(5).

This post is licensed under CC BY 4.0 by the author.

HOWTO - setup mariadb cluster

Monitoring Kubernetes cluster health with ZABBIX