ssh linux&git密钥免密登录+多密钥配置

ssh-keygen

ssh-keygen指令在win7, win10系统和linux系统均可使用

语法介绍

常规操作使用ssh-keygen --version查看使用技巧

貌似没有查看语法的相关指令,碰巧错误的使用触发这个usage显示页
在这里插入图片描述


维基百科上的简介

在这里插入图片描述

生成密钥

生成密钥这个过程陆续的会需要用户输入一些必要的信息,可以Enter直接使用默认
在这里插入图片描述

[hsyt@hsyt004 ~]$ ssh-keygen -t rsa -C "[email protected] jenkins服务器"
Generating public/private rsa key pair.
#一般使用默认的路径即可(这里的路径指代ssh密钥的存放路径以及名称前缀),否则需要很多额外的配置处理
Enter file in which to save the key (/home/hsyt/.ssh/id_rsa): /home/hsyt/.ssh/id_rsa_jenkins
Created directory '/home/hsyt/.ssh'.
#这里的密码建议不要设置,不然每次使用密钥都需要输入密码,这里本来就是为了免密做一些任务才设置的这个
Enter passphrase (empty for no passphrase): 
#密码确认,不管上面设置的密码是否有值,都需要二次确认
Enter same passphrase again: 
Your identification has been saved in /home/hsyt/.ssh/id_rsa_jenkins.
Your public key has been saved in /home/hsyt/.ssh/id_rsa_jenkins.pub.
The key fingerprint is:
43:c8:86:33:2f:9c:7a:53:3c:08:5c:c2:46:06:c7:da [email protected] jenkins服务器
The key's randomart image is:
+--[ RSA 2048]----+
|.== .            |
| ++o o .         |
| +o + + .        |
|. Eo O .         |
|    = = S        |
|   . o . .       |
|  . o            |
|   . .           |
|                 |
+-----------------+

查看密钥

ls -l ~/.ssh/

在这里插入图片描述

GitLab ssh密钥配置

登录gitLab——>个人设置——>Setting——>SSh Keys
在这里插入图片描述
在这里插入图片描述

检查密钥是否配置成功

linux服务器可以直接使用ssh,windows 可以使用git bash的窗口来营造一个伪linux的系统来使用ssh

ssh -vT git@gitlabIp -p服务端口
# -v 显示详细日志
# gitlabIp gitLab的访问地址中ip或者域名信息
# -p 默认使用80端口,可以不写

Git 指定密钥路径

当生成密钥的使用的不是默认名称时,或者存在一个设备有多套密钥时,密钥的识别会出现问题,需要通过~/.ssh/config文件类指定相应的地址该使用哪个密钥。为了验证是否生效,可以使用ssh -vT git@xxxx -pxxx指令来验证,这指令会输出详细的日志
在这里插入图片描述

#gitlab的ip或者域名 可以使用*通配,优先通过匹配id找到该条记录
Host github.com
    #gitlab的ip或者域名 不允许*通配
    HostName github.com
    #用户名,这个内容不做校验,填什么都可以
    User username
    #密钥类型
    PreferredAuthentications publickey
    #密钥路径前缀,同ssh-keygen 生成密钥时设置的路径
    IdentityFile ~/.ssh/id_rsa_yeah
    #端口 默认端口80可以不做配置
    port 80 
Host git.gupaoedu.com
    HostName git.gupaoedu.com
    User username
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_qq

ssh配置密钥后未生效

密钥部分目录和文件的权限需要严格准守规范,否则将导致文件无法正常被读取使用

chmod 700 ~/
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/*

linux服务器之间密钥拷贝

拷贝密钥这一次还是需要输入密码的,之后就可以无秘登录。
ssh-copy-id 指令会将pub密钥追加到目标服务器~/.ssh/authorized_keys文件中

ssh-copy-id -i ~/.ssh/id_rsa_jenkins.pub -p端口号 目标服务器账号@目标服务器ip 

在这里插入图片描述

完成以后验证

ssh登录验证

ssh -p端口号 目标服务器账号@目标服务器ip
# -v 显示详细日志
  • 需要输入密码是因为未找到密钥(没有密钥或者密钥找不到)Git 指定密钥路径
  • 成功以后可以通过ifconfig来检查当前ip
    在这里插入图片描述

jenkins配置验证

http://ip:端口/jenkins/configure
Manage Jenkins ——> Configure System
在这里插入图片描述

参考资料

发布了22 篇原创文章 · 获赞 1 · 访问量 3251

猜你喜欢

转载自blog.csdn.net/tian_111222333/article/details/102395984
今日推荐