便捷你的SSH

2019-04-20  本文已影响0人  Exqlnet

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

$ 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
上一篇下一篇

猜你喜欢

热点阅读