我将经常连接几个 SSH 目标,我想知道是否可以为它们创建主机别名,而不是记住 IP 地址。我希望能够使用...
ssh -p xx [email protected]
我已经尝试建立这个主机,/etc/hosts
除非我需要重新启动服务,否则它不会产生任何效果。
答案1
有时将配置文件放在主目录中会更方便。这样可以避免必须以 root 身份编辑文件,还可以以其他用户无法访问这些数据的方式进行配置。此外,此配置将备份到主目录中,并且可“经受”操作系统升级。
为此,我们可以创建一个 ssh 配置文件nano ~/.ssh/config
,在其中输入有关连接的有用信息。一个简单的条目可能包含以下内容:
Host myremote # any name for the host
HostName 192.168.178.05 # IP, .local, or hostname if defined
User username # your username
Port 22 # port to listen
这里还可以提供许多其他选项,包括用户和身份验证(请参阅ssh_config 的手册页)
然后我们可以简单地发出以下命令来连接到 192.168.178.05 的端口 22:
ssh myremote
答案2
你可以使用一个名为sshez
。它与您的配置文件交互,使添加 ssh 别名更加容易。
安装 gem
gem install sshez
my_alias
例如添加别名
sshez add my_alias [email protected] -p 1022
my_alias
从配置文件中删除
sshez remove my_alias
列出别名
sshez list
现在您可以连接而ssh my_alias
不必担心自己编辑配置文件。
答案3
SSH 配置文件非常有用,但需要手动编辑文件。我使用这个 Python 包在建立 ssh 连接时自动保存连接信息。 https://github.com/emileindik/slosh
类似的sshez
工具也贴出来了:
$ pip install slosh
$ slosh [email protected] --save-as myserver
这将执行所需的 ssh 连接并在 SSH 配置文件中创建相应的条目。
[免责声明] 我创建了 slosh