J'aimerais accélérer la connexion à des serveurs spécifiques.
J'ai les serveurs disons:
123.123.123.1
123.123.123.2
123.123.123.3
Je me connecte normalement avec les éléments suivants:
ssh -p 12345 my_user@123.123.123.1
C'est une douleur car la seule différence entre les serveurs est le dernier numéro de l'ip.
J'ai essayé le code suivant:
alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<'
Cependant, j'obtiens une erreur:
karl@karls-laptop ~/scripts $ ssht 1
Pseudo-terminal will not be allocated because stdin is not a terminal.
Existe-t-il un moyen de faire fonctionner cela?
123.123.123.1 host1
puis utiliserssh myuser@host1 -p12345
Réponses:
Cela nécessite une fonction - simple et robuste, alors qu'une
alias
dans ce cas serait fragile.Quelque chose comme ça devrait faire:
La condition
[[ $1 =~ ^(1|2|3)$ ]]
garantit que vous avez entré l'un des 1, 2, 3 comme premier argument (tout argument de fin est ignoré).Maintenant, vous pouvez donner le dernier octet souhaité comme premier argument:
Mettez ceci dans votre
~/.bashrc
pour l'avoir disponible dans n'importe quelle session interactive.la source
exit
parreturn
et incluez l'utilisateurmy_user
. :)octet=$1; [[ $octet =~ ^[0-9]+$ ]] && [[ $octet -lt 255 ]] && [[ $octet -gt 0 ]] && ssh -p <portNumber> user@hostname
~/.ssh/config
fichierUtilisez la méthode voulue et écrivez les options et les alias dans
~/.ssh/config
:etc...
Et puis connectez-vous simplement en utilisant
la source
Host 123.123.123.*
qui spécifie le port et le nom d'utilisateur!Vous pouvez utiliser des modèles dans
~/.ssh/config
. Deman ssh_config
:Combiné avec:
Donc, dans votre
~/.ssh/config
, mettez:Alors:
la source
Utilisez plutôt une fonction:
Une meilleure solution consiste à utiliser un
config
fichier ssh :avec quelques lignes similaires à:
Vous pouvez également utiliser les touches ssh pour améliorer la vitesse, enfin vous ne lancez que:
et vous êtes connecté à ce serveur.
la source
.bashrc
ou.bash_func
le source dans votre.bashrc
fichier.Vous n'avez même pas besoin d'utiliser un nom comme ssht. Les noms commençant par des chiffres, même seuls les chiffres sont des noms d'hôtes valides dans le fichier de configuration ssh.
Ci-dessous fonctionne sur Xubuntu Xenial
Une partie de ma ~ / .ssh / config
Commande que j'exécute (ci-dessous, j'ai ajouté
-vv
pour la journalisation détaillée surSTDOUT
votre écran par défaut)Production
Mise à jour - ci-dessous est une solution alternative hackeuse, prenez-la juste pour un exercice bashist, peut-être pour des trucs rapides et sales:
Ce qu'il fait
-L
,-R
,-D
), bavard en mode (-vv
), sans ATS (-T
) , etc.Par exemple, je veux démarrer un proxy de chaussettes sans terminal
Comme vous pouvez le voir, aucune invite de commande, il a exécuté avec
-vv
,-T
,-D 1080
arguments.Je peux également vérifier le tunnel (essentiellement le proxy SOCKS5) sur ma machine
la source