使用域而不是 IP 地址的 SSH
SSH with domain instead of IP address
我有一个 ubuntu 16.04 @linode.com。
我希望能够通过子域 (master.mydomainname.com) 而不是 IP (192.0.2.1) 登录。
> hostname
domainname_master
> cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu.members.linode.com ubuntu
192.0.2.1 master.mydomainname.com mydomainname_master
我在 cloudflare 有一个有效的 A 和 AAAA 记录子域,可通过网络浏览器 (nginx) 访问
但是当我尝试
root@master.mydomainname.com
我无法连接:
ssh:连接到主机 master.mydomainname.com 端口 22:没有到主机的路由
有了 IP 本身,我可以毫无问题地通过 SSH 连接。
我是不是漏掉了什么?
我不建议在 /etc/hosts
中这样做,除非您有其他理由这样做。相反,我建议编辑 ~/.ssh/config
(或在 /etc/ssh/ssh_config.d
中为所有用户创建一个新文件)以添加一个条目,使这项工作适用于任何通过您的帐户使用 SSH 的内容(包括 scp
、sftp
和 rsync
等等)。
Host master master.mydomainname.com mydomainname_master
Hostname 192.0.2.1
User root
配置文件中的此内容(通过 man ssh_config
了解更多信息)将允许您 运行 ssh master
或 ssh master.mydomainname.com
或 ssh mydomainname_master
而无需在命令行上指定主机 IP 甚至用户名 (root)。您总是通过 运行ning 覆盖用户名,例如ssh jan@master
(如果您要在系统范围内安装这个,您可能不想指定用户名。)
我有一个 ubuntu 16.04 @linode.com。
我希望能够通过子域 (master.mydomainname.com) 而不是 IP (192.0.2.1) 登录。
> hostname
domainname_master
> cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu.members.linode.com ubuntu
192.0.2.1 master.mydomainname.com mydomainname_master
我在 cloudflare 有一个有效的 A 和 AAAA 记录子域,可通过网络浏览器 (nginx) 访问
但是当我尝试
root@master.mydomainname.com
我无法连接: ssh:连接到主机 master.mydomainname.com 端口 22:没有到主机的路由
有了 IP 本身,我可以毫无问题地通过 SSH 连接。
我是不是漏掉了什么?
我不建议在 /etc/hosts
中这样做,除非您有其他理由这样做。相反,我建议编辑 ~/.ssh/config
(或在 /etc/ssh/ssh_config.d
中为所有用户创建一个新文件)以添加一个条目,使这项工作适用于任何通过您的帐户使用 SSH 的内容(包括 scp
、sftp
和 rsync
等等)。
Host master master.mydomainname.com mydomainname_master
Hostname 192.0.2.1
User root
配置文件中的此内容(通过 man ssh_config
了解更多信息)将允许您 运行 ssh master
或 ssh master.mydomainname.com
或 ssh mydomainname_master
而无需在命令行上指定主机 IP 甚至用户名 (root)。您总是通过 运行ning 覆盖用户名,例如ssh jan@master
(如果您要在系统范围内安装这个,您可能不想指定用户名。)