【问题标题】:Cannot copy the public key to remote-host using cat无法使用 cat 将公钥复制到远程主机
【发布时间】:2012-10-19 10:05:47
【问题描述】:

我正在尝试像here 中所说的那样设置无密码的 SSh 登录

我能够成功生成 SSH 密钥

ssh-keygen

但是当我这样做时

猫 ~/.ssh/id_dsa.pub | ssh user@xxx.xxx.xxx.xxx '猫 >> ~/.ssh/authorized_keys'

它给了我这个错误

不会分配伪终端,因为标准输入不是终端

ssh : xxx.xxx.xxx.xxxcat >> ~/.ssh/id_rsa.pub | SSH user@xxx.xxx.xxx.xxx '猫 >>> ~/.ssh/authorized_keys'

我尝试设置passwordless SSH,但没有出现此类错误,但它无法正常工作,因为它仍在要求输入密码。根据本文作者的说法,SSH-copy-id 有 3 个问题,这很可能是它仍然要求输入密码的原因。

有什么想法吗?

注意:机器在 CentOS 上运行

【问题讨论】:

    标签: ssh centos


    【解决方案1】:

    试试:

    cat ~/.ssh/id_dsa.pub | ssh -t -t user@xxx.xxx.xxx.xxx 'cat >> ~/.ssh/authorized_keys'
    

    -t -t 选项强制分配伪 tty,即使 stdin 不是终端。

    【讨论】:

    • 它要求输入密码,当我输入密码时,它显示“tcgetattr: Invalid argument”
    • @srhsnl,你可以检查一下 xxxx:~/.ssh/authorized_keys,你的 id_dsa.pub 已经存在了吗?我想已经在那里了。 ssh -t 旨在用于交互式使用,因此当输入来自终端时。在这里, ssh stdin 不是终端,而是来自管道,因此 tcgetattr 失败。不用担心这个!
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2012-04-05
    • 2016-05-22
    • 2020-12-24
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多