美文网首页
关于ssh的密钥问题

关于ssh的密钥问题

作者: 某言 | 来源:发表于2019-06-06 17:29 被阅读0次

    灵感(心德)是来源于在:设定服务器和远程git仓库的数据联通、设定jenkins服务传送文件过程中。只要了解了这个本质问题,其他的一些,尽然迎刃而解。


    经历

    一、在jenkins需要自动化获取仓库代码时候,代码托管平台一般需要认证,这个时候,需求是需要无密码拉取,这时候,通信的方式是ssh,代码托管平台一般就会要求添加ssh公钥,这时候,搭配上服务器的私钥,通
    过认证,即可免密通信。
    二、jenkins需要将文件打包传送到另一个服务器,两个服务器之间要免密通过ssh通信。在每个服务器的特定用户(比如root)的用户文件夹下面(/home/root/),有一个目录.ssh,里面有着相关的文件来达成这个目的。一般该目录下有如下文件:

    authorized_keys  别的服务器的公钥,如此,别的服务器登录该服务器不用密码
    id_rsa  该用户私钥
    id_rsa.pub  该用户公钥
    known_hosts
    

    感悟

    要登录一个服务器(的用户、jenkins、git等的验证),实际上原理都是私钥配公钥来达成认证,一对密钥是一个验证方式,一个用户,对于多个平台可以有多个ssh秘钥,私钥公钥都要存在,可改名字存储。


    实践

    目的:用我windows免密登录服务器:119.12.34.56
    步骤:

    • windows用户生成密钥,命令行执行如下命令,基本可以一直回车,生成的ssh密钥会在用户文件夹下的.ssh目录:
    # 当然还可以设定密码,名字等
    ssh-keygen -t rsa -C "your_email@type.com"  
    

    如果不规定名字默认是如下:

    id_rsa  该用户私钥
    id_rsa.pub  该用户公钥
    
    • 登陆119服务器(先用密码,此时不能免密),要设定哪个用户(user)免密登陆,就去到该用户.ssh目录下:
    cd /home/user/.ssh
    

    找到(或者创建)authorized_keys文件,然后,把window上产生的id_rsa.pub里面的内容拷贝到authorized_keys

    • 在window登陆时候,就可以使用命令
    ssh -i path/id_ras user@119.12.34.56
    

    意思就是使用配置的ssh密钥的私钥去登陆119.12.34.56的user用户,因为配置了公钥,可以成功。

    可以形象的理解成,私钥是钥匙,公钥是锁。

    相关文章

      网友评论

          本文标题:关于ssh的密钥问题

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