在scp中使用别名而不是IP

时间:2012-06-14 15:18:18

标签: shell unix

我在办公室里有一个桌面,我经常需要从家里访问并使用scp来复制文件。目前我正在这样做

scp username@x.x.x.x  ...

我想要一种机制,每次我想scp的东西时都没有输入IP地址。我试图通过创建一个别名来实现它,但它似乎不起作用。 我可以给我的桌面机器命名,这样我可以使用机器名称而不是输入IP地址吗?

3 个答案:

答案 0 :(得分:6)

解决此问题的一种方法是在ssh配置中创建一个条目。这可以在系统范围内完成,或者,如果您在此框中没有root访问权限,则仅适用于您的用户。

每用户配置文件为~/.ssh/config,并使用以下格式

host my_desktop
    hostname 11.22.33.44

此方法也很好,因为您可以指定其他选项,例如用户名。要了解有关可用选项的更多信息,请尝试man ssh_config

答案 1 :(得分:2)

您的系统上应该有一个HOSTS文件,其目的就是为此而设计。在我的Linux系统上,它位于/etc/hosts。如果添加如下所示的行:

11.22.33.44   my_desktop

然后对名称my_desktop的所有访问都将映射到列出的IP地址。但是,此更改仅影响已修改HOSTS文件的计算机。如果你想让任何人使用特定名称访问IP,那么你会看到一些更困难的东西(这是DNS服务器旨在解决的一般问题)

答案 2 :(得分:1)

使用环境变量来保存您的IP和用户名 - 然后在scp命令中使用该变量。

user@crunchbang:~$ export mypc='myuser@x.x.x.x'

user@crunchbang:~$ scp $mypc: ......