如何通过另一台服务器访问 SSH

如何通过另一台服务器访问 SSH

我有一台 Linux 服务器(A)(使用 IP XXXX)仅接受来自另一台 Linux 服务器的 SSH(在端口 X)()使用特定的 IP YYYY 显然,如果我登录服务器(无论从哪个 IP)我都可以 SSH 连接服务器A

可以访问服务器A通过服务器使用来自任何 IP 的路由或转发?

我希望在服务器的特定端口打开 SSH 连接这会将流量路由到服务器A

答案1

我认为您正在寻找的是 SSH Bastion,您可以通过在 .ssh 目录中创建一个 ssh 配置文件来轻松配置它。这里有一个很好的描述:https://goteleport.com/blog/ssh-bastion-host/

类似这样的方法就可以成功(假设您想从服务器 C 连接到服务器 A,您可以在服务器 C 中创建一个配置文件):

$ cat ~/.ssh/config
主持人 XXXX
   用户服务器A用户名
   ProxyJump YYYY

确保服务器 B /etc/ss/sshd_config 文件根据上述链接具有正确的设置。

希望这可以帮助 :-)

答案2

解决此问题的方法之一是在服务器中使用 nginx 上游

首先,确保加载nginx 流模块

load_module '/usr/lib64/nginx/modules/ngx_stream_module.so';

并添加如下代理配置:

stream  {
    upstream ssh {
        server {server-a-ip}:22;
    }

    server  {
        listen {my-non-standard-port};
        proxy_pass ssh;
    }
}

然后你就可以连接到服务器A

ssh username@{server-b-ip} -p {my-non-standard-port}

当然,最好只允许你的公共 IP 访问服务器在端口 {my-non-standard-port}

相关内容