V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
qw7692336
V2EX  ›  Linux

ssh-copy-id 把公钥上传到服务器时,怎样指定私钥登录服务器?

  •  
  •   qw7692336 · 2015-07-29 09:54:06 +08:00 · 4591 次点击
    这是一个创建于 3398 天前的主题,其中的信息可能已经有所发展或是发生改变。

    -i参数是指定上传的公钥而不是用于登录的私钥

    第 1 条附言  ·  2015-07-29 10:52:35 +08:00
    服务器已经有了公钥key1.pub,我可以用私钥key1来登录,现在我想把另一个公钥key2.pub也上传到服务器,并且用key1来登录
    第 2 条附言  ·  2015-07-29 11:23:21 +08:00
    现在服务器有key1.pub本地有key1。我在本地生成了一对key2和key2.pub。现在想在本地用ssh-copy-id命令把key2.pub上传到服务器。我本地的key1并不在默认路径,而在~/keys/key1。
    第 3 条附言  ·  2015-07-29 11:27:01 +08:00
    实际上我把本地的key1放到默认路径就可以解决,我只是想看看有没有更直接的方法
    11 条回复    2021-01-04 23:39:53 +08:00
    fundon
        1
    fundon  
       2015-07-29 10:47:44 +08:00
    ssh -i 私钥
    qw7692336
        2
    qw7692336  
    OP
       2015-07-29 10:50:10 +08:00
    @fundon
    ssh-copy-id -i 公钥.pub [email protected]
    可以直接把本地公钥上传到服务器,但是需要输入密码,我需要指定登录私钥,应该怎么做?-i参数是指定上传的公钥而不是登录的私钥。我这句命令可以改吗?
    wy315700
        3
    wy315700  
       2015-07-29 10:53:39 +08:00
    ~/.ssh/config
    fundon
        4
    fundon  
       2015-07-29 11:12:11 +08:00
    @qw7692336 公私钥是一对,非要再搞个 key2.pub,那就再服务器创建一个 user
    finian
        5
    finian  
       2015-07-29 11:18:16 +08:00
    @qw7692336 ssh -i 是指定私钥。另,没看懂你的附言,意思是现服务器上有 key1.pub 和 key2.pub,你本地只有 key1?如果是这样,你用 ssh 命令可以直接登录啊
    icecoffee
        6
    icecoffee  
       2015-07-29 11:20:29 +08:00
    公私钥一对是唯一的吧。 LZ 应用场景是什么样的, 有这样的需求? X-Y?
    qw7692336
        7
    qw7692336  
    OP
       2015-07-29 11:23:38 +08:00
    @fundon
    @finian
    @icecoffee
    现在服务器有key1.pub本地有key1。我在本地生成了一对key2和key2.pub。现在想在本地用ssh-copy-id命令把key2.pub上传到服务器。我本地的key1并不在默认路径,而在~/keys/key1。
    finian
        8
    finian  
       2015-07-29 11:40:32 +08:00   ❤️ 1
    @qw7692336 两种方式:
    1. 用 ssh -i key1 登录服务器,再手动 copy key2.pub
    2. 用 ~/.ssh/config 配置使用 key1 登录

    Host xxx
    HostName xxx.xxx.xxx.xxx
    Port xxx
    User xxx
    IdentitiesOnly yes
    IdentityFile ~/.ssh/key1
    suifengdaren
        9
    suifengdaren  
       2015-07-29 11:40:45 +08:00 via Android
    不用指定,cat key2 >> ~/.ssh/id_rsa
    Linusyeung
        10
    Linusyeung  
       2015-07-30 06:26:37 +08:00 via iPhone
    用楼上说的“>>" 则不会覆盖。。

    不行?
    charlie21
        11
    charlie21  
       2021-01-04 23:39:53 +08:00
    把 ~/.ssh 备份之后新建一个空的 ~/.ssh ,把决定要用的 私钥 放里面并改名为 id_rsa,让 ~/.ssh 里只有这一个文件,也就是默认路径
    然后用 ssh-copy-id,这样一来它就会自动选用默认路径的那个私钥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   992 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:45 · PVG 04:45 · LAX 12:45 · JFK 15:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.