我遇到的情况是,我必须根据我使用的端口在同一个 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
因为用户名和端口是在配置文件中给出的。