目录
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 指定密钥路径
- Bad owner or permissions on /home/hsyt/.ssh/config ssh配置密钥后未生效
- 看到Welcome to XXX, 用户名 就代表配置成功
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