ssh 是我们工作中使用的最频繁的工具了,让ssh自动连接服务器,避免每次访问都输入密码,会让你的工作变的更快捷。

ssh 的连接有两种连接认证方式,一种是用户名密码方式,另一种是使用证书认证,证书认证实际就是RSA密钥对认证。

我们要避免输入密码,就选择用密钥对来认证,方便快捷。

配置过程比较简单,只需要三步即可完成。

第一步 : 生成密钥

     1) 打开shell , 执行 ssh-keygen -t rsa

     2)提示输入保存密钥的文件名,我输入的是 id_rsa ,回车

     3)又提示要输入保护密码,这里直接回车,不需要密码保护

     4) 完成后如下图,在当前目录下会生成  id_rsa 和 idrsa.pub 两个文件,一个是rsa密钥对的私钥,一个是公钥(带.pub的)

ssh 免密 jenkins ssh 免密认证_当前用户

 

第二步: 放置公钥

     在证书认证过程中,公钥即公开的密钥,是不需要保密的,可以发给任何人。你想要谁认证你,你就给谁发一份儿,让他保存起来。后面认证的时候,用你的私钥加密一段文字,他用你的公钥能解密,解密成功了,也证明你是可信任的了。

     1、公钥给GITHUB 服务器

        公钥给谁,如果你要GITHUB服务器认证你,你就给github服务器,github服务器接收你的公钥的位置,是在你登录完GITHUB在网右上角的个人小图标里,进入个人账号空间,在 SSH and GPG keys 菜单里,点 New SSH Key 新增你的公钥。

ssh 免密 jenkins ssh 免密认证_ssh_02

 

       把上面第一步中的 rsa_id.pub 文件中的内容完全复现到新弹出的窗口中,保存即可。

       这样,GITHUB就拿到了你的公钥了。

    2、公钥给你的机房中的LINUX服务器

       如果你想登录你的机房中LINUX服务器,避免输入用户密码,那你把你的公钥就给这些服务器。

       在服务器上公钥放哪儿呢,放到当前用户home 目录下的 .ssh 目录下的 authorized_keys 文件中,如果没有此文件,你就用你上面生成的公钥文件id_rsa.pub替换此文件即可,如果已经有,可以把你的公钥APPAND到最后即可。

       注意,.ssh 目录是隐藏文件夹,进入当前用户的HOME目录后可以使用 ls -a 显示出来

       ssh 登录后默认就是在你的账号home目录中的,如果你是在其它位置,可以使用 cd ~  命令直接进入你的 当前用户home 目录下

         ~.ssh/authorized_keys  即为公钥文件的存放处

      小技巧:可以使用 ssh-copy-id 工具直接把你本机的公钥发送到服务器端,格式如下

     ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.231

     这条指令把我本机用户 home 目录下的 id_rsa.pub 文件发送到 192.168.0.231 服务器root用户的 home 目录下,并添加到 authorized_keys 文件中

第三步: 放置私钥

     上面一步中我们把公钥放置好了,现在该放置私钥到适合的位置。

     私钥是你的保密密钥,不能让别人看到,所以需要放到你的本地,让 ssh 程序能找到并在连接的时候自动读取私钥使用。

     私钥文件在你当前用户的home目录下的 .ssh 隐藏文件夹下,文件名叫 id_rsa, 即把你上面生成的私钥文件is_rsa复制到这下面即可。

       ~/.ssh/id_rsa 即为私钥文件的存放处

 至此,所有配置都已经完成,你随意启动一个 shell ,都可以无需任何密码访问你的github仓库或你的机房服务器。

 几种常见错误解决:

    1、私钥文件权限过多,需要使用 chmod 600  ~/.ssh/id_rsa  收一下权限即可,这个是ssh程序为了防止私钥文件被黑客攻击,强制私钥文件必须是弱权限,如下:

         

ssh 免密 jenkins ssh 免密认证_服务器_03