如何在非标准端口上使用 ssh-copy-id

sey*_*eya 7 ssh

我想使用基于密钥的身份验证登录到我的其中一台计算机。它在非默认端口 22 上运行 sshd。我想用它ssh-copy-id来将我的密钥添加到授权密钥列表中。-p对于 ssh 命令本身,我尝试使用 指定端口。但是,我收到了非常奇怪的错误消息。

例如

user@box:~$ ssh-copy-id -p 57777 -i ~/.ssh/id_rsa.pub user@192.168.1.111
Bad port 'umask 077; test -d ~/.ssh || mkdir ~/.ssh ; cat >> ~/.ssh/authorized_keys'

user@box:~$ ssh-copy-id '-p 57777' -i ~/.ssh/id_rsa.pub user@192.168.1.111 
Pseudo-terminal will not be allocated because stdin is not a terminal.
ssh: Could not resolve hostname umask 077; test -d ~/.ssh || mkdir ~/.ssh ; cat >> ~/.ssh/authorized_keys: Name or service not known
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它工作?(我知道我可以手动将密钥添加到服务器上的 authorized_keys 文件中。但我很懒惰,而且非常好奇如何说服 ssh-copy-id 完成它的工作:))

zpe*_*pea 10

引用已经是一个好主意,而是这样做:

ssh-copy-id -i /home/user/.ssh/id_rsa.pub '-p 57777 user@192.168.1.111'
Run Code Online (Sandbox Code Playgroud)

将您想告诉脚本使用的 ssh 命令的所有内容放在最后并引用所有内容。该脚本期望最后一个参数是主机名,因此在其生成的 ssh 命令结束时复制它。

(显然这是一个已知问题。请参阅此错误报告错误报告