gpt4 book ai didi

python - Paramiko 仅连接到 IP 地址而不是 Python 中的主机名?

转载 作者:行者123 更新时间:2023-11-28 19:25:33 26 4
gpt4 key购买 nike

我在 python 中有这样的函数:

def test_ssh(host, username, password):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=username, password=password)

问题是:test_ssh('127.0.0.1', 'root', 'hello') 有效

但是 test_ssh('localhost', 'root', 'hello') 不起作用

我得到的错误是:

ssh: Could not resolve hostname localhost: Name or service not known

这是什么原因造成的?谢谢

最佳答案

因为我的评论没有多大意义(将它们放在一起)(假设您的操作系统是 Linux)-

错误原因 -

ssh: Could not resolve hostname localhost: Name or service not known

是 - HOSTNAME 的 DNS 解析没有提供正确的 IP(评论#1)

用这个命令测试(终端)-

host localhost

你可以尝试什么 -

编辑/etc/hosts 文件,将IP 和Hostname 放入此文件中。那应该可以解析您的主机名和 IP像这样 -

#IP hostname [[alias1] [...]]
127.0.0.1 localhost
172.22.0.9 mymachine.home mymachine

最后一个很棒的链接 - http://bit.ly/IHhA1R

编辑

可能的工作流程 -

  • 用户注册,输入HOSTNAME
  • 我们运行命令(使用 python 我们可以使用 os.subprocess 或 os.popen)-

bash$ dig HOSTNAME

  • 获取主机名的IP
  • 尝试使用 IP 而不是 HOSTNAME 连接到 HOST

始终使用相同的工作流程来获取用户提供的 HOSTNAME 的最新 IP,使用 IP 而不是 HOSTNAME 进行连接

关于python - Paramiko 仅连接到 IP 地址而不是 Python 中的主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com