通过两个不同的网关,使用不同的服务器用户将(SSH)连接到同一服务器

hu

我想要实现的是能够target.server使用以下命令从本地计算机连接到某些计算机,而无需键入任何密码:

ssh [email protected]
ssh [email protected]

上面的每个用户仅接受来自特定IP地址的连接,分别对应于gateway1.examplegateway2.example我已经在右侧添加了所有必需的SSH密钥authorized_keys,以便无需输入密码即可执行以下操作:

现在我认为将正确的事情放在我的当地仍然是必要的~/.ssh/config当我添加时:

Host target.server
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

然后ssh [email protected]工作。但是我不知道该如何兼顾user1user2工作。我试过了:

Host target.server
    User user1
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host target.server
    User user2
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

或者

Host target.server
    User user1
        ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
    User user2
        ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

但是它仍然没有作用user2:一切都经过了gateway1,却没有gateway2

预先非常感谢您的帮助!

更新:我已经能够使以下命令起作用:

ssh user1
ssh user2

(不带@target.server),请使用以下配置:

Host user1
    HostName target.server
    User user1
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host user2
    HostName target.server
    User user2
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

这是我将要使用的,但是我仍然很好奇在这个问题的开头看到两个命令的解决方案。

瓦萨

如您所知,别名是一个很好的解决方案。如果您不想使用它们,则该Match指令可能是另一个有效的选项。

Host target.server
    Match User user1
        ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
    Match User user2
        ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

ssh_config手册页:

Match限制仅当满足Match关键字后面的条件时才使用以下声明(最多下一个HostMatch关键字)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用apache将两个不同的路径路由到同一服务器

socket.io - 客户端通过同一服务器连接到两个套接字

SFTP SSH用户从连接同一服务器的两台主机使用

如何对在同一服务器上运行的不同进程使用不同的域名

如何通过SSH使用不同于22的端口连接到服务器

通过不同的接口连接到同一服务器(SO_BINDTODEVICE):无法访问目标主机

davfs2:使用不同的凭据从同一服务器安装多个webDAV

通过SSH连接通过同一服务器上的连接A通过VPN连接到子网B

ssh,接受同一服务器IP的两个密钥指纹

使用Laravel Eloquent在同一服务器上的不同数据库中联接两个MySQL表

将两个不同的网站转发到同一台服务器

如何在python中使用不同的主机和密码通过ssh连接到多个服务器?

PHPMYADMIN | 我们如何在两个不同的MySQL数据库(在同一服务器内)中同步两个表?

Node.js-使用多个HTML文件连接到同一服务器,同一用户

使用两个单独的盐将密码分别哈希两次并在同一服务器上保存两个哈希是否安全?

在同一服务器上导入具有相同架构(数据库名称)的两个不同的mysql转储文件

如何在具有不同动态DJANGO_SETTINGS_MODULE环境变量的同一服务器上运行两个Django应用

c#EntityFramework:具有DTC的同一服务器上的两个不同数据库上的TransactionScope

将两个人连接到同一台服务器?

在使用不同协议的两个远程服务器之间传输文件

通过相同的用户在同一Linux服务器上为不同的应用程序运行两个版本的Java

OPENROWSET查询同一服务器或不同服务器

如何通过来自同一本地用户的密钥登录使用两个不同的用户名登录同一台远程服务器?

SVN-您可以将两个不同的服务器用于一个工作副本吗?

规避同一服务器上两个站点之间的Web安全限制

同一服务器上两个 Laravel 项目的环境问题

同一服务器上两个域的配置

如何将Ajax请求发送到同一服务器的不同URL

可以为同一服务在不同服务器上进行不同的会话吗?