目录
参考:
https://docs.gitlab.com/ee/ssh/README.html
一、检查是否已存在SSH密钥对
1、在Windows, Linux, macOS系统下,进入用户home目录(windows为C:\Users\当前用户名)
2、进入.ssh/子目录(windows为C:\Users\当前用户名\.ssh),
3、若不存在则需按照下文步骤生成SSH密钥对,
若存在以下文件,则表明已经生成过:
Algorithm | Public key | Private key |
---|---|---|
ED25519 (preferred) | id_ed25519.pub | id_ed25519 |
RSA (at least 2048-bit key size) | id_rsa.pub | id_rsa |
DSA (deprecated) | id_dsa.pub | id_dsa |
ECDSA | id_ecdsa.pub | id_ecdsa |
二、生成SSH密钥对
1、打开windows CMD
2、执行ssh-keygen命令
# 其中comment会出现在.pub文件中,可以写邮箱账号
ssh-keygen -t rsa -b 2048 -C "<comment>"
注:可按提示输入密码(亦可直接回车跳过)
生成完成后,既可在如下图提示的目录下查看到密钥对文件
三、添加SSH密钥到gitlab用户
1、登录gitlab,点击右上角头像avatar -> 下拉菜单Settings -> 左侧菜单SSH Keys
2、将之前生成的公钥id_rsa.pub内容粘贴到Key文本框,同时自定义title
注: 添加完成后,即可在私钥所在的机器上拥有该ssh公钥绑定账户的操作权限(注意对应ssh gitlab库链接)
四、在jenkins创建Gitlab SSH Credentials
创建类型为SSH Username with private key的凭证,
并将第三步生成的私钥id_rsa的内容添加到Private Keys中,
Username并无实际作用(建议跟实际用户同名),
最下面的密码Passphrase即为生成SSH密钥对时输入的密码
之后在新建jenkins构建任务时,即可通过ssh方式访问git仓库,且对应的凭证即选择之前创建的gitlab-root-ssh
注:
jenkins中亦可以直接创建类型为Username with password的credential,
可使用该凭证直接以http://xxx形式的访问gitlab库
五、通过SSH密钥对实现免密登录Linux服务器
1、在源主机通过ssh-keygen命令生成密钥对
2、将公钥拷贝到目标主机的用户home/.ssh
目录下的authorized_keys文件中
又或者通过如下命令进行公钥拷贝:
# 其中可通过-p指定ssh端口(默认22)
ssh-copy-id 用户名@目标主机IP -p 22
3、拷贝完成后即可在私钥所在的机器上
直接免密登录绑定公钥的机器
ssh 用户名@目标主机IP