根据端口使用不同的 ssh 配置选项

根据端口使用不同的 ssh 配置选项

我遇到的情况是,我必须根据我使用的端口在同一个 IP 地址上使用不同的登录凭据。

因此命令行上的示例如下所示:

ssh [email protected]:22

ssh [email protected]:2222

我在 ~/.ssh/config 文件中设置了以下内容:

 Host "192.168.1.*"
   user user1
   IdentityFile ~/.ssh/id_user1
   PubkeyAuthentication yes

这对于端口 22 场景中的用户 1 非常有效,但是有没有办法为端口 2222 上的用户 2 设置备用用户和 IdetityFile 呢?

答案1

我想我应该继续寻找......

SSH 配置主机匹配端口superuser.com 上有我需要的答案!

基本上不是:

Host "192.168.1.*"

我现在正在使用:

Match host "192.168.1.*" exec "test %p = 22"

Match host "192.168.1.*" exec "test %p = 2222"

答案2

我没有尝试过,但我认为 HostName 选项(参见man ssh_config可以为您提供解决方案:

 Host "host22"
   Hostname "192.168.1.2"
   Port 22
   user user1
   IdentityFile ~/.ssh/id_user1
   PubkeyAuthentication yes
 Host "host2222"
   Hostname "192.168.1.2"
   Port 2222
   user user2
   IdentityFile ~/.ssh/id_user2
   PubkeyAuthentication yes

有了这个你应该能够做到:

ssh user1@host22
ssh user2@host2222

甚至

ssh host22
ssh host2222

因为用户名和端口是在配置文件中给出的。

相关内容