通过ssh跳转主机和目的主机的公钥不同

  • 本文关键字:主机 公钥 ssh 通过 linux ssh
  • 更新时间 :
  • 英文 :


我有HOP服务器(堡垒)和APP服务器。我可以ssh到HOP服务器通过:

$ ssh HOP

我可以从HOP服务器ssh到APP服务器:

$ ssh APP

两个SSH都不需要密码,只能通过SSH密钥。

在可部署期间,我发现我无法通过HOP连接到APP服务器。我在cmd:

上测试它
ssh -o ProxyCommand="ssh -W %h:%p HOP" APP

在此之后,我能够连接到APP服务器,但它需要密码。我发现,即使APP ssh从HOP工作,现在也无法检测到来自HOP服务器的配置。所以我定义了在命令行中使用的公钥:

ssh -o ProxyCommand="ssh -W %h:%p HOP" APP -i /etc/ssh/my_ssh_key
Warning: Identity file /etc/ssh/my_ssh_key not accessible: No such file or directory.

但是现在,它试图找到my_ssh_key在本地主机上,它再次询问密码。

如何从HOP服务器强制使用配置或定义从HOP而不是从localhost使用SSH公钥?这可能吗?

我通过以下方法实现了这一点:

在主机组下使用bastion主机

[testservers]
192.168.20.140
192.168.10.88
[testservers:vars]
ansible_port = 22 # remote host port
ansible_user = ec2-user # remote user host
private_key_file = /Users/laptop-ansibleuser/.ssh/id_rsa # laptop key to login to bastion host
ansible_ssh_common_args='-o StrictHostKeyChecking=no -o ProxyCommand="ssh -o 'ForwardAgent yes' ansible-remote@<bastion host> -p 2222 'ssh-add /home/ansible-remote/.ssh/id_rsa && nc %h %p'"'

最新更新