Supondo que você esteja usando o OpenSSH, você pode configurar seu arquivo ~/.ssh/config
para cada, então você não terá que especificar um usuário, você pode criar seu próprio nome:
host host1
User testuser
IdentityFile ~/.ssh/id_rsa-test
então, quando você fizer ssh host1
, isso será feito automaticamente ou, como você usará host1
como outros usuários também, poderá fazer
host test-host1
User testuser
IdentityFile ~/.ssh/id_rsa-test
Hostname host1
faça ssh test-host1
e você pode fazer o mesmo para cada host que quiser.
Qualquer host que não seja correspondido por uma entrada em seu arquivo ssh_config (5) usará o comportamento padrão - ou usará os padrões especificados em ssh_config na configuração global, ou seja, não dentro de um bloco de host
ssh_config não suporta correspondência em nomes de usuários, mas você pode escrever um script de shell para detectar isso para você. Aqui está um frágil no bash que assume que seu nome de usuário / host é sempre o primeiro argumento e será quebrado se não for:
ssh() {
if [[ "$1" =~ ^testuser@ ]]; then
command ssh -i ~/.ssh/id_rsa-test "$@"
else
command ssh "$@"
fi
}