使用SSH时永久存储地址


12

我有一些通过终端连接到的远程服务器。服务器没有域,只有一个IP地址,当我有几个IP地址时很难记住。

有没有一种方法可以将值永久存储在终端中,以便执行以下操作?

server1 = 111.222.111.222

并输入以下命令:

ssh root@server1

代替:

ssh root@111.222.111.222

Answers:


22

对于SSH连接,您可以创建用户配置文件~/.ssh/config并将映射放置在其中,例如

Host server1
  Hostname      111.222.111.222

您可以轻松地添加其他字段,例如Port(对于非标准端口)和User(如果远程系统上的用户名与本地系统上的用户名不同,则很有用)。有关man ssh_config完整的详细信息,请参见。


14

是的,只需将它们写下来/etc/hosts。它具有以下语法:

1.2.3.4 servername additional_servername

哪里:

  • 1.2.3.4 IP地址
  • servername 是名字
  • additional_servername 是一个可选名称

保存后,可以通过其名称访问服务器。


@theusual如果这是您想要的答案,请考虑接受它(向上/向下投票按钮下方的复选标记)。
jpmc26

8

当然,对于您的特定问题,您希望遵循@chaos和@steeldriver建议,但是在一般情况下,为了“将值永久存储在终端中”,您正在寻找shell变量。如何设置它们取决于您的外壳(我想echo $SHELL会提供相关信息)。

如果“永久”的意思是“只要我不退出此终端会话”,那么export server1=111.222.111.222如果您使用的是bash基于-shell的话(如果我没记错的话,setenv server1 111.222.111.222对于csh/tcsh基于-shell的话),您可以简单地使用该命令。然后,您可以通过在变量前面加上前缀$ :来访问变量ssh root@$server1

如果“永久”是指“每次启动新终端”,则需要在一个shell初始化文件中设置变量。例如,基于$HOME/.bashrcfor bash的shell,或者$HOME/.cshrc-大概使用与上一段中提到的语法相同的语法。请注意,您将必须获取初始化文件的来源(例如,source $HOME/.bashrc或打开新的外壳程序以考虑更改)。

注意:从内存中回答,可能需要一些小的调整。


2
即使重新启动计算机,也要永久保留。我来看一下,可能会在一段时间后派上用场。
通常

然后应用第二种方法(shell初始化文件)。
Skippy le Grand Gourou 2015年

1

这不是问题的直接答案(混乱和Steeldriver已经提供了我认为是最佳的字面解决方案),但是在大多数情况下,如果您只需要在一个地址处向一个用户SSH,则可以查看编辑.bash_aliases您的主目录中的文件应该很有用,因为您可以为整个终端命令创建别名。


0

具体答案非常好。

但是,总的来说,如果您想在shell中定义/设置某些东西,只需编写一个脚本来执行它,然后在使该设置生效时使用source或执行它.

如果您一直需要它,则可以在.profile(对于登录shell)中或在.bashrc中为所有shell(如果您使用bash)提供源。

使用这样的方法,您可以有多个脚本来根据需要设置不同的工作环境,只要您确保在先调用另一个脚本后就不会互相踩踏,就可以确保它们不会互相踩踏。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.