IP地址的BASH标签

IP地址的BASH标签,bash,label,Bash,Label,我的错:我一直忙于学习其他linux东西,以至于完全忽视了bash的威力 我有许多系统可以远程访问,以便进行非常简单的操作。问题是我需要记住每个IP地址。而且他们很多 在~./bashrc中使用别名是一个选项: alias ssh_customer1='ssh root@10.X.X.X' alias ssh_customer2='ssh root@10.X.X.Y' alias copy_customer1='scp * root@10.X.X.X:/etc/example/' ali

我的错:我一直忙于学习其他linux东西,以至于完全忽视了bash的威力

我有许多系统可以远程访问,以便进行非常简单的操作。问题是我需要记住每个IP地址。而且他们很多

在~./bashrc中使用别名是一个选项:

 alias ssh_customer1='ssh root@10.X.X.X'
 alias ssh_customer2='ssh root@10.X.X.Y'
 alias copy_customer1='scp * root@10.X.X.X:/etc/example/'
 alias copy_customer2='scp * root@10.X.X.Y:/etc/example/'
 alias get_customer1='scp root@10.X.X.X:/etc/example/* .'
 alias get_customer2='scp root@10.X.X.Y:/etc/example/* .'
但灵活性很小

另一种可能是使用系统名称作为参数定义函数,但我不喜欢这样:

sshx('customer1')
scpx('customer2')
我更喜欢用相应的IP地址替换标签,而不需要记住它,并使用标准命令:

ssh root@ip_customer1
scp root@ip_customer2:/etc/example/* .
这可能吗

设置文件:

现在您可以使用:

ssh cust1
另一件很酷的事情是,您现在可以将标识文件附加到每个服务器:

$ cat ~/.ssh/config
Host cust1
    HostName 10.X.X.X
    User root
    IdentityFile ~/.ssh/cust1.id_rsa
Host cust2
    HostName 10.X.X.Y
    User root
    IdentityFile ~/.ssh/cust2.id_rsa
这将允许您在不使用密码的情况下使用ssh和scp,前提是密钥没有密码或使用了ssh代理。

设置文件:

现在您可以使用:

ssh cust1
另一件很酷的事情是,您现在可以将标识文件附加到每个服务器:

$ cat ~/.ssh/config
Host cust1
    HostName 10.X.X.X
    User root
    IdentityFile ~/.ssh/cust1.id_rsa
Host cust2
    HostName 10.X.X.Y
    User root
    IdentityFile ~/.ssh/cust2.id_rsa

这将允许您在不使用密码的情况下使用ssh和scp,前提是密钥没有密码,或者使用了ssh代理。

您可以使用其昵称
/etc/hosts
声明IP。另一种方法是配置DNS服务器和DHCP客户端/服务器,以便每个主机公布其名称。是的,只需将它们放在主机文件中。您可以使用
/etc/hosts
声明IP及其昵称。另一种方法是配置您的DNS服务器和DHCP客户端/服务器,以便每个主机公布其名称。是的,只需将它们放在您的主机文件中。谢谢@andIrc,我不知道这种可能性!解释得很好。@Alex我很高兴能帮上忙。如果您考虑使用身份文件,您还应该考虑运行SSH代理,因为它将使您的身份文件上的密码成为可能,而不必每次使用它们时重新键入密码。太棒了+感谢@andIrc,我不知道这种可能性!解释得很好。@Alex我很高兴能帮上忙。如果您考虑使用身份文件,您还应该考虑运行SSH代理,因为它将使您的身份文件上的密码成为可能,而不必每次使用它们时重新键入密码。太棒了+1用于
IdentityFile
内容。