我有一种情况,我必须根据我使用的端口在同一 IP 地址上使用不同的登录凭据。
因此,命令行上的示例如下所示:
ssh user1@192.168.1.2:22
Run Code Online (Sandbox Code Playgroud)
和
ssh user2@192.168.1.2:2222
Run Code Online (Sandbox Code Playgroud)
我在 ~/.ssh/config 文件中设置了以下内容:
Host "192.168.1.*"
user user1
IdentityFile ~/.ssh/id_user1
PubkeyAuthentication yes
Run Code Online (Sandbox Code Playgroud)
这对于端口 22 场景中的 user1 非常有用,但是有没有办法在端口 2222 上为 user2 设置备用用户和 IdetityFile?
我没有尝试过,但我认为 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
Run Code Online (Sandbox Code Playgroud)
有了这个你应该能够做到:
ssh user1@host22
ssh user2@host2222
Run Code Online (Sandbox Code Playgroud)
甚至
ssh host22
ssh host2222
Run Code Online (Sandbox Code Playgroud)
因为用户名和端口在配置文件中给出。
我想我应该继续寻找......
superuser.com 上的SSH 配置主机匹配端口有我需要的答案!
基本上代替:
Host "192.168.1.*"
Run Code Online (Sandbox Code Playgroud)
我现在正在使用:
Match host "192.168.1.*" exec "test %p = 22"
Run Code Online (Sandbox Code Playgroud)
和
Match host "192.168.1.*" exec "test %p = 2222"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1910 次 |
最近记录: |