我有一个命令,看起来像这样:
$ ssh [long list of parameters, eventually I connect to internalhost]
我的任务是将这一长串参数替换为 just internalhost
,以便我可以像这样运行它
$ ssh internalhost
我怎样才能做到这一点?
答案1
我通常使用.ssh/config
在我的主目录中找到的文件以ssh ubserver
.在此处找到的文件中,/home/$USER/.ssh
我有以下配置:
Host ubserver
Hostname 127.0.0.1
Port 2222
User george
这意味着我可以简单地做:
ssh ubserver
并连接到所述服务器,而无需在终端中输入超过该行的内容。
答案2
标准 SSH 客户端在任何连接之前读取配置文件:
/etc/ssh/ssh_config # system-wide
~/.ssh/config # per user
后者具有更高的优先级。
理想情况下,您希望使用令所有用户满意的参数来配置系统范围的配置,并使用特定于您的选项来配置您的主目录中的配置。
这是一个例子~/.ssh/config
Host remote.example.com
User dev1
IdentityFIle ~/.ssh/id_rsa_remote
然后进行连接:
ssh remote.example.com
笔记:
~/.ssh/config
该用户必须具有读/写权限,并且其他人无法访问(chmod 600 ~/.ssh/config
)
所有可能的选项都记录在 ssh_config 手册页中:人 ssh_config