我有一台在非标准端口上运行 SSH 的服务器。它在 8129 上运行,而不是 22。要登录,我使用:
ssh -p 8129 hostname
Run Code Online (Sandbox Code Playgroud)
现在,每当我需要为无密码登录设置密钥时,我必须复制公钥并将其手动添加到authorized_keys。我发现该命令ssh-copy-id
可用于简化此过程,但它似乎没有指定 ssh 服务器端口的选项。
有什么方法可以告诉ssh-copy-id
使用端口 8129,还是应该忘记这个命令并像以前一样手动复制/粘贴?
小智 126
$ ssh-copy-id "-p 8129 user@host"
Run Code Online (Sandbox Code Playgroud)
来源: http : //it-ride.blogspot.com/2009/11/use-ssh-copy-id-on-different-port.html
注意:端口必须在 user@host 前面,否则将无法解析
编者按:在评论中指出,并表示其他的答案,ssh-copy-id
如由发货较新版本的OpenSSH支持-p <port_number>
语法(不需要引号)。
Gil*_*il' 48
ssh-copy-id
不接受任何可以传递给底层ssh
命令的参数,但您可以在~/.ssh/config
.
Host myhost
HostName hostname
Port 8129
Run Code Online (Sandbox Code Playgroud)
然后运行ssh-copy-id myhost
。
Col*_*ack 21
从 openssh-client_6.2 开始,该命令现在有一个专用端口标志,允许使用以下语法:
ssh-copy-id -p 8129 user@example
Run Code Online (Sandbox Code Playgroud)
它还增加了对使用 -o 标志添加其他 ssh 选项的支持。
这是 13.04 中引入的相应版本的 Ubuntu 手册页:http : //manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html
Chr*_*own 11
快速查看源代码表明ssh-copy-id
似乎没有允许这样做的功能。但是,您可以改为执行以下操作:
ssh -p8129 user@host 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_*.pub
Run Code Online (Sandbox Code Playgroud)
小智 7
这有效(从这里):
ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 221 username@host'
Run Code Online (Sandbox Code Playgroud)
我一直习惯scp
复制过来:
scp -P 8129 ~/.ssh/id_*.pub user@host:
ssh -p 8129 user@host 'cat id_*.pub >> ~/.ssh/authorized_keys'
Run Code Online (Sandbox Code Playgroud)
虽然我必须说,如果我将来记得它们,我可能会使用其他(单线/连接)方法。但这是您的另一种选择。
归档时间: |
|
查看次数: |
84097 次 |
最近记录: |