两台虚拟机,vm1 主机开启ssh服务 ,只允许客户端vm2以为Jack用户身份秘钥登录
时间: 2024-09-12 07:12:00 浏览: 44
AZ-204微软MCP ET.pdf
在Linux环境下,如果你想要限制vm1这台主机的SSH服务只接受来自客户端vm2的连接,并且这个连接只能由Jack用户通过公私钥方式进行登录,你可以按照以下步骤操作:
1. **生成密钥对**:
- 在vm2上,作为`jack`用户运行命令 `ssh-keygen -t rsa` 来创建一个新的RSA密钥对。
2. **复制公钥到vm1**:
- 在vm2上,获取公钥并复制到vm1。`cat ~/.ssh/id_rsa.pub | ssh jack@vm1 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'`
3. **配置防火墙** (如果vm1有iptables):
- 在vm1上,打开SSH端口(默认22)并限制源IP地址为vm2的IP或网络范围。例如:
```
iptables -A INPUT -s <vm2_ip> -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
```
4. **设置sshd配置** (在vm1的/etc/ssh/sshd_config中):
- 确保配置`PasswordAuthentication no`,关闭密码登录。
- 可能需要编辑`Match User jack`行,指定只有Jack用户才能使用公钥认证。
5. **重启SSH服务**:
- `service ssh restart` 或者 `systemctl restart ssh`
现在,从vm2作为`jack`用户登录时,将能够无密码地通过SSH连接到vm1,因为vm1仅接受公钥验证,并且只允许vm2发起的请求。
阅读全文