sách gpt4 ai đã đi

SSH 主机 key 验证仅在其中一个客户端上失败

In lại 作者:行者123 更新时间:2023-12-02 14:25:37 28 4
mua khóa gpt4 Nike

我无法从客户端“A”SSH 到服务器“B”(但我可以从同一子网上的许多其他 ssh 客户端而不是“A”——所有都是 *nux 机器)

serverA>ssh -v -p 端口用户@serverB

OpenSSH_5.3p1 Debian-3ubuntu5, OpenSSL 0.9.8k 25 Mar 2009  
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to serverB [serverB] port PORT.
debug1: Kết nối đã được thiết lập.
debug1: identity file /home/user_A/.ssh/id_rsa type -1
debug1: identity file /home/user_A/.ssh/id_dsa type 2
debug1: Checking blacklist file /usr/share/ssh/blacklist.DSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.DSA-1024
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5
debug1: match: OpenSSH_5.1p1 Debian-5 pat OpenSSH*
debug1: Bật chế độ tương thích cho giao thức 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu5
debug1: SSH2_MSG_KEXINIT đã được gửi
debug1: Đã nhận được SSH2_MSG_KEXINIT
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) đã gửi
debug1: mong đợi SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT đã được gửi
debug1: mong đợi SSH2_MSG_KEX_DH_GEX_REPLY
debug1: checking without port identifier
Host key verification failed.

我已经在客户端 A 上检查了以下这些点 - 因为服务器 A 看起来很重要 - :
  • user_A/.ssh 目录权限:700(见 man ssh)
  • user_A/.ssh/known_hosts 权限:644(见 man ssh)
  • user_A/.ssh/known_hosts:不内容 serverB 主机公钥
  • otherusers/.ssh/known_hosts:不包含 serverB 主机公钥

  • 我试过了 :
  • 删除服务器 A 上的 known_hosts:同样的错误仍然存在
  • 清空服务器 A 上的 known_hosts:同样的错误
  • 检查主机 key 名称是否与 ssh 服务器配置匹配:ok (HostKey/etc/ssh/ssh_host_rsa_key)
  • 重新生成服务器 B 主机 key (ssh-keygen -t dsa/rsa -f/etc/ssh/ssh_host_dsa/rsa_key):同样的错误
  • serverB 上的 ssh -p PORT me@localhost:它也可以与其他 ssh 客户端
  • 一样工作

    所以我现在真的很累! ssh 专家欢迎回家。

    提前谢谢

    1 Câu trả lời

    不明白我对这个特定服务器到底做错了什么..
    仍然“奇怪”的是,在客户端销毁“known_hosts”并没有达到预期的积极效果。

    无论如何,请在以后找到我手动执行的操作,非常丑陋但有效:
    注意:这假设对两台机器(客户端和服务器)具有完全访问权限

    服务器端 :重新生成 2 对 key (rsa 和 dsa)

    ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key  
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

    客户端 :
    为用户“foo”生成一对 dsa key (私有(private)和公共(public))
    ssh-keygen -t dsa -f /home/foo/.ssh/my_client_key  

    如果正在运行,则将此新 key 添加到 ssh-agent
    ssh-add /home/foo/.ssh/my_client_key  

    将服务器 ssh_host_rsa_key.pub 的内容添加到客户端/home/foo/.ssh/known_hosts,在 IP/端口之后:
    [server_ip]:server_port copy/paste here the server public rsa key (ctrl+shift+C/V)  
    [server_ip]:server_port copy/paste here the server public dsa key (ctrl+shift+C/V)

    现在回到服务器端 :

    将客户端公钥/home/foo/.ssh/my_client_key.pub 复制/粘贴到/home/bar/.ssh/.authorized_keys 中,以允许连接到用户“foo”以连接到“bar”帐户:

    确保与/etc/ssh/sshd_config 的路径一致,以便能够使用文件 .authorized_keys :
    AuthorizedKeysFile %h/.ssh/.authorized_keys  

    重新启动 ssh 服务器
    /etc/init.d/ssh restart  

    客户 :现在客户端“foo”可以ssh到服务器上的用户“bar”:
    foo@client>$ ssh -p PORT bar@server_ip  

    注意:在我的情况下,客户端和服务器都在 VM 中本地运行。显然不要将这些设置用于生产。

    biên tập :更仔细地阅读 man ssh 页面,应该可以以非常适当的方式解决这个问题,引用 man:“StrictHostKeyChecking 选项可用于控制主机 key 未知或主机 key 未知的机器的登录变了。”

    关于SSH 主机 key 验证仅在其中一个客户端上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5049119/

    28 4 0
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com