是否可以在 22 以外的端口上运行 ssh-copy-id?

是否可以在 22 以外的端口上运行 ssh-copy-id?

我有一台在非标准端口上运行 SSH 的服务器。它在 8129 上运行,而不是 22。要登录,我使用:

ssh -p 8129 hostname

现在,每当我需要设置无密码登录的密钥时,我都必须复制公钥并将其手动添加到authorized_keys中。我发现该命令ssh-copy-id可用于简化此过程,但似乎它没有指定 ssh 服务器端口的选项。

有没有办法告诉ssh-copy-id使用端口 8129,或者我应该忘记这个命令并像以前一样手动复制/粘贴?

答案1

$ ssh-copy-id "-p 8129 user@host"

来源: http://it-ride.blogspot.com/2009/11/use-ssh-copy-id-on- Different-port.html

笔记:端口必须在user@host前面,否则无法解析


编者注:正如评论中指出的和所示的其他答案ssh-copy-id由最新版本的 OpenSSH 提供,支持该-p <port_number>语法(不需要引号)。

答案2

ssh-copy-id不接受任何可以传递给底层ssh命令的参数,但您可以在中配置别名~/.ssh/config

Host myhost
HostName hostname
Port 8129

然后跑ssh-copy-id myhost

答案3

从 openssh-client_6.2 开始,该命令现在有一个专用端口标志,允许使用以下语法:

ssh-copy-id -p 8129 user@example

它还添加了对使用 -o 标志添加其他 ssh 选项的支持。

以下是 13.04 中引入的相应版本的 Ubuntu 手册页:http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html

答案4

这有效(来自这里):

ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 221 username@host'

相关内容