为ssh连接创建别名

Modified on: Sat, 09 Jun 2018 10:27:53 +0800

我想加快与特定服务器的连接。

我有服务器让我们说:

123.123.123.1 123.123.123.2 123.123.123.3

我通常会连接以下内容:

123.123.123.1
123.123.123.2
123.123.123.3

这很痛苦,因为服务器之间的唯一区别是ip的最后一个数字。

我尝试了以下代码:

ssh -p 12345 my_user@123.123.123.1

但是我收到错误:

alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<'

有没有办法让这个工作?

最佳答案

这需要一个函数 - 简单而健壮,而在这种情况下alias会很脆弱。

这样的事情应该做:

function ssht () {
    [[ $1 =~ ^(1|2|3)$ ]] || { echo 'Not a valid last octet value !!' && return ;}
    ip=123.123.123.$1
    ssh my_user@"$ip" -p 12345
}

条件[[ $1 =~ ^(1|2|3)$ ]]确保您输入1,2,3中的一个作为第一个参数(忽略任何尾随参数)

现在,您可以将所需的最后一个八位字节作为第一个参数:

ssht 1
ssht 2
ssht 3

将它放在~/.bashrc中,以便在任何交互式会话中使用它。


相关问答

添加新评论