网站建设需要摊销吗,管理咨询包括哪些内容,淘宝上做网站,3 阐述网站建设的步骤过程 9分本地配置多个git账户 清除全局配置将命令行#xff0c;切换到ssh目录生成GitLab和Gitee的公钥、私钥去对应的代码仓库添加 SSH Keys添加私钥ll设置 管理密钥验证仓库配置关于gitgitee.com: Permission denied (publickey) 清除全局配置
此步骤可以不做#xff0c;经测试不影… 本地配置多个git账户 清除全局配置将命令行切换到ssh目录生成GitLab和Gitee的公钥、私钥去对应的代码仓库添加 SSH Keys添加私钥ll设置 管理密钥验证仓库配置关于gitgitee.com: Permission denied (publickey) 清除全局配置
此步骤可以不做经测试不影响新增的git账户的使用
执行命令查看是否存在全局配置
git config --global --list如果其中有 user.name 和 user.email 信息请执行以下命令将其清除掉
git config --global --unset user.name
git config --global --unset user.email将命令行切换到ssh目录
cd ~/.ssh生成GitLab和Gitee的公钥、私钥
ssh-keygen -t rsa -C “代码仓库注册的邮箱”按下 ENTER 键后会有如下提示
Generatingpublic/privatersa key pair.Enter fileinwhich to save the key
(/Users/jitwxs/.ssh/id_rsa):在这里输入公钥的名字默认情况是叫 id_rsa为了和后面的 gitee 配置区分这里输入 id_rsa_github。输入完毕后一路回车钥对就生成完毕了。
去对应的代码仓库添加 SSH Keys
GitLab的话打开id_rsa_gitlab.pub全部复制后去仓库中进行添加复制的内容复制进Key中Title想叫
添加私钥
从这步开始切换到仓库的位置做
以下步骤仅在bash所在位置文件夹生效
cd xxx/workspace在上一步中我们已经将公钥添加到了 github 或者 gitlab 服务器上我们还需要将私钥添加到本地中不然无法使用。添加命令也十分简单如下
ssh-add ~/.ssh/id_rsa_gitlab // 将 GitLab 私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitee // 将 Gitee 私钥添加到本地如果出现了
Could not open a connection to your authentication agent.则先运行下面了这个命令就可以完美解决这个问题了 值得一提的是当执行完这个命令之后ll命令将不再被识别
ll设置
如果你在 Windows 的 SSH 环境中比如使用 OpenSSH 客户端或通过 WSLssh-agent 不能执行 ll 命令这通常是因为 ll 命令没有在你的 shell 环境中定义为一个别名。ll 通常是 ls -l 的别名它允许你以长列表格式查看目录内容。在 Windows 的 SSH 环境中你需要确保你的 shell 配置文件如 #126;/.bashrc 或 #126;/.bash_profile 对于 bash shell包含了定义 ll 别名的行。然而由于 Windows 和 Linux 环境之间的差异这些配置文件可能不会像在标准的 Linux 环境中那样自动加载。以下是在 Windows 的 SSH 环境中为 ll 设置别名的步骤打开你的 shell 配置文件
通常你可以在用户主目录下找到 .bashrc 或 .bash_profile 文件。你可以使用文本编辑器打开它。定义 ll 别名
在配置文件中添加以下行来定义 ll 别名bash
alias llls -l
确保配置文件被加载
如果你在使用 WSL你的 .bashrc 或 .bash_profile 文件应该在启动时被加载。如果不是这样你可能需要手动加载它或者在你的 shell 配置中添加适当的命令来加载它。启动新的 shell 会话
在修改了配置文件后你需要启动一个新的 shell 会话或者重新加载配置文件以使更改生效。你可以使用 source 命令来重新加载配置文件bash
source #126;/.bashrc
检查别名是否设置成功
在新的 shell 会话中输入 alias 命令来查看所有的别名确保 ll 别名已经列出。然后尝试使用 ll 命令来查看目录内容。如果你在使用 WSL并且已经按照上述步骤操作但 ll 命令仍然不可用可能是因为 WSL 没有正确配置来加载你的 shell 配置文件。在这种情况下你可能需要查看 WSL 的文档或社区支持以获取更多帮助。另外如果你在使用 Windows 的 OpenSSH 客户端并且 ssh-agent 是通过 Windows 的服务或任务计划程序运行的那么你可能需要确保 ssh-agent 的环境变量如 PATH 和 SSH_AUTH_SOCK被正确设置并且你的 shell 配置文件被加载到 ssh-agent 的环境中。这可能需要更复杂的配置和调试。在Git\etc\profile.d\bash_profile.sh加一行即可 alias llls -lssh密钥管理器,ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。
其实ssh-agent就是一个密钥管理器运行ssh-agent以后使用ssh-add将私钥交给ssh-agent保管其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
我们认为你正在用ssh key做权限认证。为了避免你在启动ssh agent时重复输入密码你可以输下面两个命令
ssh-agent bash启动ssh agent并把bash挂到上面
ssh-add .ssh/id_rsa添加私钥并由ssh agent保管这样下次就不需要再输入密码了ssh-agent启动bash或者说把bash挂到ssh-agent下面。
ssh-agent bash添加完毕后可以通过执行 ssh-add -l 验证下如果都能显示出来和下面一样就 OK 了
ssh-add -l
3072 SHA256:************ “邮箱”(RSA)
3072 SHA256:************ “邮箱”(RSA)管理密钥
通过以上步骤公钥、密钥分别被添加到 git 服务器和本地了。下面我们需要在本地创建一个密钥配置文件通过该文件实现根据仓库的 remote 链接地址自动选择合适的私钥。
编辑 ~/.ssh 目录下的 config 文件如果没有就需要创建。 内容如下
Host gitlab
HostName gitlab.com
User usergitlab
IdentityFile ~/.ssh/id_rsa_gitlab
Host gitee
HostName gitee.com
User user
IdentityFile ~/.ssh/id_rsa_gitee该文件分为多个用户配置每个用户配置包含以下几个配置项
Host仓库网站的别名随意取个人建议可以和HostName一样也可以 HostName仓库网站的域名PSIP 地址应该也可以 User仓库网站上的用户名 IdentityFile私钥的绝对路径
验证
注意git和中间没有空格
ssh -T gitgithub.com 出现以下提示信息就证明配置成功了
$ ssh -T gitgitee.com
Hi user! Youve successfully authenticated, but GITEE.COM does not provide shell access.JanJancar MINGW64 ~/.ssh
$ ssh -T gitgitlab.com
Welcome to GitLab, user!注意当出现这个判断时要手动输入yes 否则无法成功 “but GitHub does not provide shell access“这句话的意思是GitHub不提供shell (ssh)访问/接入权限。ssh -T选项的意思为不分配伪终端。 这句话的意思即为你无法使用ssh协议直接登录github在github服务器上建立一个伪终端并进行操作。所以这句提示并不是一个错误而是github输出的一句提示语。 同样你可以在本地使用ssh协议进行git相关操作并提交到github没有任何影响。希望能解决你的疑问。
仓库配置
恭喜你完成以上配置后其实你已经基本完成了所有配置。分别进入附属于 github 和 gitlab 的仓库此时都可以进行 git 操作了。但是别急如果你此时提交仓库修改后你会发现提交的用户名变成了你的系统主机名。
这是因为 git 的配置分为三级别System — Global —Local。System 即系统级别Global 为配置的全局Local 为仓库级别优先级是 Local Global System。
因为我们并没有给仓库配置用户名又在一开始清除了全局的用户名因此此时你提交的话就会使用 System 级别的用户名也就是你的系统主机名了。
因此我们需要为每个仓库单独配置用户名信息假设我们要配置 github 的某个仓库进入该仓库后执行
git config --local user.name “用户名”
git config --local user.email “邮箱”执行完毕后通过以下命令查看本仓库的所有配置信息
git config --local --list至此你已经配置好了 Local 级别的配置了此时提交该仓库的代码提交用户名就是你设置的 Local 级别的用户名了。
关于gitgitee.com: Permission denied (publickey)
明明我在.ssh目录下是执行成功的但是到准备提交的仓库中就是不成功 所以我就想着是不是和HostName和Host有关系因为我的HostName和Host是不一样的
于是乎我就想着在仓库目录下试试看ssh -T gitgitee
没想到就成功了这才恍然大悟。
这里的解决办法有两种 1、修改Host和HostName一样从本文第六步开始 2、把仓库目录下的/.git/config中的远程url从 url gitgitee.com:name/demo-collection.git 修改为url gitgitee:name/demo-collection.git 参考文档
【Git】Git 多用户配置
but GITEE.COM does not provide shell access
程序员必学必会- Git 设置多个账号