1、生成ssh key。
~$ ssh-keygen -t rsa #执行后在./.ssh/目录下会生成id_rsa(密钥),is_rsa.pub(公钥),known_hosts三个文件
2、生成公私钥时输入私钥密码加密id_rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub 127.0.0.1 发送公钥给127.0.0.1
i d_rsa.pub 是公钥, id_rsa 是私钥, known_hosts 保存着所有已发生连接服务器的信息,需要将公钥里的信息拷贝到登陆服务器用户主目录中的隐藏目录 .ssh 的文件
authorized_keys 中
或者将 id_rsa.pub 直接拷贝过去放到服务器 .ssh 目录下,改名为 authorized_keys
3、启用ssh-agent
~$ eval 'ssh-agent'
如不能启用连接把bash挂到ssh-agent下面,命令如下:
ssh-agent bash --login -i
4、添加私钥
~$ ssh-add ~/.ssh/id_rsa
如果添加不成功,遇到了“Could not open a connection to your authentication agent.”。
【解决方法】需要ssh-agent启动bash,或者说把bash挂到ssh-agent下面。
【具体方法】
~$ ssh-agent bash --login -i
~$ ssh-add ~/.ssh/id_rsa
5、添加成功以后就可以利用repo命令来下载代码了
【ssh-agent介绍】
ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。
其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。通过使用ssh-agent就可以很方便的在不的主机间进行漫游了。