首页 > 解决方案 > 使用需要自定义端口号的 ssh 登录时有什么方法可以隐藏端口号

问题描述

我想登录到具有自定义 ssh 端口的服务器,例如 -

ssh -p <my server port number> root@example.com

现在我想要这样的简短命令(类似于别名),我不需要一次又一次地输入该端口号。像 -

ssh my-short-code

是否可以?如果是,欢迎任何提示。

标签: bashsshalias

解决方案


转到您的ssh配置文件 - 我的在 中$HOME/.ssh/config,并添加以下内容:

Host example
HostName example.com
User root
Port 2229

然后你可以这样做:

ssh example

如果您希望能够在远程机器上运行 X11 应用程序(例如xclockxterm任何图形软件开发工具),但在本地显示图形,您可以通过在上面显示的之后添加以下 2 行来转发 X11:

ForwardX11 yes
ForwardX11Trusted yes

在评论中回答您的进一步问题。是的,您可以继续添加任意数量的附加服务器,每个服务器使用不同的端口、用户名、保持活动间隔:

Host example
HostName example.com
User root
Port 2229

Host sercon
HostName sercon.onlinehome-server.info
User u8566723
Port 378
StrictHostKeyChecking no

您还可以在开头添加一个通用条目,其中包含大多数服务器所需的设置,然后稍后在各个服务器上覆盖它们:

Host *
Username mark
ServerAliveInterval 10

Host XYZ
<specific stuff for this host>

Host <ABC>
<specific stuff for this host>

要获取更多信息,请在终端中使用:

man ssh_config

如果您碰巧在 Mac 下macOS/OSX,并且希望 X11 转发与 XQuartz 一起使用,请将以下 3 行放在文件顶部:

Host *
# https://serverfault.com/a/859370/235272
XAuthLocation /opt/X11/bin/xauth

推荐阅读