ssh-copy-id 怎么加服务器端口号?

我使用

ssh-copy-id  "-p $SERVERPORT  -i /home/$USERNAME/.ssh/vpn-server.key.pub $SERVERUSERNAME@$SERVERIPV4"

或是

ssh-copy-id  -i /home/$USERNAME/.ssh/vpn-server.key.pub "-p $SERVERPORT  $SERVERUSERNAME@$SERVERIPV4"

都不对

ssh-copy-id  -i /home/$USERNAME/.ssh/vpn-server.key.pub   $SERVERUSERNAME@$SERVERIPV4

这样就能跑

谢谢大家了。

阅读 4.5k
2 个回答

见ssh-copy-id的man手册:

SSH-COPY-ID(1)                                                       BSD General Commands Manual                                                       SSH-COPY-ID(1)

NAME
     ssh-copy-id — use locally available keys to authorise logins on a remote machine

SYNOPSIS
     ssh-copy-id [-f] [-n] [-i [identity_file]] [-p port] [-o ssh_option] [user@]hostname
     ssh-copy-id -h | -?

不过我印象中centos 6和ubuntu 12.04的ssh-copy-id不支持port参数,我当初看过它的源码(纯shell脚本),的确没有port参数的解析,当年我记得自己hack过它的源码,自己加上了port参数实现这个需求。所以这里还有点印象。后面高版本的ssh-copy-id追加了port参数,可以指定ssh端口号了。如果你的ssh-copy-id不支持指定端口号的话,只能手工追加你的公钥到远程服务器的~/.ssh/authorized_keys了。

实际上ssh-copy-id的源码就是这么写的

  1. -p参数
ssh-copy-id -p
  1. 修改 /etc/ssh/ssh_config

修改Port为你的端口号

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题