ssh登录时不用输入密码

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就可以很方便的在不的主机间进行漫游了。

你可能感兴趣的:(ssh登录时不用输入密码)