美文网首页
便捷你的SSH

便捷你的SSH

作者: Exqlnet | 来源:发表于2019-04-20 09:21 被阅读0次

    当有两台或以上云服务器的时候,每次登录都要

    $ ssh <user>@<hostname>  [-p ...]
    password: ******
    

    这样会造成很多不必要的麻烦——每次都要输入用户和密码,于是我们通过配置ssh-key来认证服务器。

    使用ssh-keygen生成ssh-key密钥对

    $ ssh-keygen
    

    一路回车即可

    使用ssh-copy-id

    ssh-copy-id可以将上面生成的ssh-key复制到服务器,具体用法如下

    $ ssh-copy-id -i <identity_file> <user>@<hostname>
    password: ******
    

    在执行完成后就可以直接访问服务器而免去了输入密码的烦恼。

    使用ssh-config

    虽然免去了输入密码的烦恼,但我们每次还是要输入user和hostname,我们可以通过配置一个config文件来达到更简单的目的。

    编辑文件

    $ vim ~/.ssh/config
    
    Host aliyun
        HostName ***.***.***.***
        IdentityFile ~/.ssh/id_rsa
        user root
    

    其中Host是别名,HostName是服务器地址,IdentityFile是私钥文件,user是要登录的用户。<br />于是只需要

    $ ssh aliyun
    

    就可以直接连接到服务器了。

    github使用多个私钥

    虽然推荐一个用户只拥有一对密钥,但有时也会出现一台机器上有多个github用户的时候,如果不配置,默认就是用~/.ssh/id_rsa这个私钥,如果不区分,就可能没有权限push到指定的仓库。

    比如,现在有2个github用户,每个用户有一个仓库,并且有两对ssh-key,两把ssh-key的公钥都已经放在了github相应的账户中。

    编辑config文件

    $ vim ~/.ssh/config
    
    Host user1
        HostName github.com
        IdentityFile ~/.ssh/key1
        user user1
    
    Host user2
        HostName github.com
        IdentityFile ~/.ssh/key2
        user user2
    

    此时的Host任意命名即可,看到,虽然我们配置了两个HostName都是github.com,但是它们对应不同的user。

    使用时,在github的remote url中,指定相应用户即可。

    例如

    git@github.com:user1/project1
    

    相关文章

      网友评论

          本文标题:便捷你的SSH

          本文链接:https://www.haomeiwen.com/subject/wihkgqtx.html