编程技术记录

世界你好!

生成 ssh key

$ ssh-keygen -t rsa -C "git服务端留存的邮箱地址" 

Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): "这里输入ssh key保存路径,不建议使用默认地址"
Enter passphrase (empty for no passphrase): "这里输入密码,建议输入空(方便后续配置)"
Enter same passphrase again: "再输入一遍密码,建议输入空(方便后续配置)"

应生成两个文件,公钥和私钥,文件名形式为xxx(私钥),xxx_pub或者xxx.pub(公钥)。记住ssh key生成的文件路径。

默认情况下,ssh会使用~/.ssh/id_rsa这个私钥,但无法处理访问多个ssh远端的场景。

配置本地ssh访问git使用的私钥

打开 ~/.ssh/config文件,如果没有则创建一个文本文件,添加如下内容

# 请保证 Host 和 HostName 的值相同 (macos11 实测不相同时,git ssh 访问失败)

# 远端ssh主机别名
Host bitbucket.cmbc.com.cn
    # 远端ssh主机名(域名或者ip都可以)
    HostName bitbucket.cmbc.com.cn
    # 鉴权文件 ,这填写ssh私钥文件路径
    IdentityFile "ssh 私钥文件路径"
    # 使用公钥算法进行鉴权
    PreferredAuthentications publickey

关于 ssh config 更多细节参考 https://linux.die.net/man/5/ssh_config

配置git上的鉴权公钥

不同的git服务方式不一样,以bitbucket为例:
登录bitbucket,依次点击头像 -> Manage account -> SSH keys -> Add key ,

将ssh 公钥文件内容复制到在输入框中,然后 保存(点击 "Add key" 按钮)

ssh 公钥形式通常是ssh-rsa + base64编码的公钥 + 邮箱地址

配置本地已有git仓库的访问协议

# 查询远程仓库地址
git remote -v

# 添加ssh协议  地址需要访问网页版的bitbucket仓库获取
git remote set-url --add origin ssh://git@bitbucket.cmbc.com.cn:7999/xxx/xxx.git

# 删除http协议 地址由git remote -v获得
git remote set-url --delete origin http://usernamge@bitbucket.cmbc.com.cn:7999/scm/xxx/xxx.git 

© Beli. All Rights Reserved.