繁体   English   中英

IP地址的BASH标签

[英]BASH label for IP addresses

我的错:我一直在忙于学习其他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/config文件:

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

现在您可以使用:

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-agent,这将使您无需密码即可使用ssh和scp。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM