Git生成SSH key #
在初始化文件鼠标右键,找到Git Bash Here,进入后输入下面2条指令:
Copy
gitconfig--globalusername"名称或昵称"gitconfig--globaluseremail"你的邮箱"
作用:告诉Git你是谁,邮箱在生成SSH Key需要。
输入上面2条指令后,再输入下面指令:
ssh-keygen -t rsa -C "你的邮箱"
生成结果如下
上面完成后,再输入指令:
上面完成后,再输入指令:
cat ~/ssh/id_rsapub
指令下的一大串就是SSH Key(SSH Key是以ssh-rsa AAAA开头),SSH Key生成完成。
SSH Key部署 #
部署到Github
登录Github,点击头像 找到settings
点击右上角New SSH Key,添加成功后在终端输入:
ssh -T git@githubcom
若返回有
Hi,你的名称或昵称 You've successfully authenticated
证明添加成功!1、首先生成公钥。打开SecureCRT(我的版本为70,估计其他版本基本相同)程序,点击菜单栏的“工具”-》“创建公钥”。按照步骤执行。其中一步比较重要就是选择公钥的格式。建议选择“OpenSSH”,否则在服务器端使用时需要转换为OpenSSH各式。何必多次一举呢。所以这里必须选择“OpenSSH”。如果选错了。重新生成一次就可以了。然后选择公钥私钥存放的地方。默认Identity是私钥,Identitypub是公钥。2、把Identitypub文件上传到你要登陆的Linux服务器上。方法有很多,比如ssh(先不要配置为公钥登陆),ftp等。具体 *** 作自己搞定。上传时选择ASCII方式。3、在SecureCRT创建服务器连接。协议使用ssh。在“鉴权”方法中,取消勾选“密码”。选择“公钥”,然后点击右边的属性按钮,在对话框中。使用全局公钥设置:表示所有连接都使用该公钥连接服务器。使用会话公钥设置:可以分别为每个连接指定不同的公钥。下面的路径就是指明私钥的具体路径。注意了,这里要指明私钥的路径。保存连接就可以了。Linux服务器端配置1、sshd_conf配置主要修改如下几个内容:PermitRootLogin no # 默认为注释,先配置为禁止root用户登陆,允许root登陆太危险了。好几次差点犯错误。切记切记!RSAAuthentication yes #默认为注释, 启用 RSA 认证AuthorizedKeysFile ssh/authorized_keys # 验证公钥的存放路径PubkeyAuthentication yes # 默认为注释,启用公钥认证PasswordAuthentication no # 禁止密码认证,默认是打开的。保持后,重新启动ssh服务。在不同的linux服务器上,重启的方法不同。RedHat,CentOS: service sshd restart //redhat 7 的方法已经改了。openbsd,freebsd: /etc/rcd/sshd restart2、重点部分:配置公钥存放哪的问题。要把第一部分上传上来的公钥放到用户home目录的ssh/ 目录下。这里说明一下。如果你想使用test账号登陆,就要把公钥放到test账户的ssh目录下。你可以直接把Identitypub改为authorized_keys 当然也可还是用其他方法。比如:cat Identitypub >> authorized_keys另外说明一下。ssh目录权限是700,authorized_keys文件权限为644重点补充,如果还有其他人也想用自己的公钥登陆服务器,该如何 *** 作呢? 正常 *** 作应该为该用户在服务器上创建一个账号,重新执行本次(Linux服务器端配置,第2点) *** 作。当然,你也可以偷懒,把他的公钥也放到test账号的authorized_keys文件中。但两个公钥的内容之间使用换行符隔开。这样的方法还是不可取的。最后,使用SecureCRT登陆linux服务器。这里要注意,即使你使用公钥登陆服务器,当你连接的时候,还是要你输入用户名。为何呢?不是说公钥验证么?其实,服务器要知道用你的私钥和哪个用户的ssh目录下的authorized_keys文件内容进行解密。不可能用你的私钥和所有的用户authorized_keys文件进行匹配测试。但是也有例外,如果你在linux系统上使用公钥登陆Linux服务器,就不需要指明用户。方法如下:# ssh 1721624222为何呢?这时系统默认以为你登陆的远程账号就是你当前登陆的账号。如果你设置了公钥口令,连接时比如输入。为了安全,这个口令是必须要有的。在SecureCRT中,口令被翻译为:通行短语。呵呵。补充一下,在linux系统上,如何创建公钥和私钥呢?方法很简单,执行ssh-keygen命令,按照提示就可以完成。完成后,自动会在当前用户的home目录,创建ssh文件夹。服务器端配置和上面的方法相同。>
该命令生成一个模长 2048 位,名字为 rsa_private_keypem 、 PKCS1 格式的 RSA 私钥文件
genrsa :指定生成算法使用 RSA
-out :后面参数是生成的私钥的文件名
2048 :生成私钥的模长,单位字节(bits)
根据生成的私钥 rsa_private_keypem 文件,生成公钥 rsa_public_keypem 文件
生成名字为 rsa_pkcs8_private_keypem 的私钥文件
Java 和 Android 用到的密钥:
公钥: rsa_public_keypem
私钥: rsa_pkcs8_private_keypem
终端会提示输入国家、省市、所在地、组织、组织单位、常用名称、邮箱地址等信息,按要求填写(可以随便填写), 输入完对应信息后会提示输入一个密码 :
最终会生成 rsacertcsr 文件
用最开始生成的私钥 rsa_private_keypem 和 rsacertcsr 证书请求文件生成一个数字证书 rsacertcrt
使用 x509 工具自建CA。由于 x509 无法建立证书请求文件,所以只能使用 openssl req 来生成请求文件,然后使用 x509 来自签署, 也可以用来签署他人的证书请求,即为他人颁发证书。
知识点 :
终端会提示设置密码,该密码是 p12 私钥的密码(用 private_keyp12 私钥解密时, 要用到该密码, 需要记录下 ), 会提示再次输入检验刚才输入的密码
默认情况下,用户的 SSH 密钥存储在其 ~/ssh 目录下。 我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 pub 扩展名。 pub 文件是你的公钥,另一个则是与之对应的私钥。如果没有找到或者没有ssh目录则需要生成。
你可以通过运行 ssh-keygen 程序来创建它们。 在 Linux/macOS 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。ssh-keygen 会确认密钥的存储位置(默认是 ssh/id_rsa),然后它会要求你输入两次密钥口令。 如果你不想在使用密钥时输入口令,回车即可。 然而,如果你使用了密码,那么请确保添加了 -o 选项,它会以比默认格式更能抗暴力破解的格式保存私钥。 你也可以用 ssh-agent 工具来避免每次都要输入密码。
这时候再cat ~/ssh/id_rsapub就可以看到你的sshkey了。
参考: >
centos安装设置基础软件仓库时出错 是安装错误造成的,解决方法为:
1、首先登陆CentOS服务器,连接上服务器之后我们使用yum remove git 命令删除已安装的Git。
2、若未安装过Git则忽略上一步,使用yum install git 或者yum insall -y git,加了一个-y在之后的安装过程中就全部自动了,不会再有任何需要确认的提示。
3、安装完成后,使用git --version命令查看Git的版本,我们可以看到如下的版本信息,说明Git安装成功了。
4、在CentOS上我们使用Git连接Gitee码云,首先我们需要在服务器上生成公钥,在命令行输入 ssh-keygen -t rsa -C "xxxxx@xxxxxcom"。
5、使用命令cat ~/ssh/id_rsapub查看公钥的内容,并且复制出来,粘贴到码云添加公钥的地方,粘贴后点“确定”按钮,此时会出现d框,需要输入码云的密码,输入后会提示SSH公钥添加成功。
6、接下来回到CentOS服务器上,输入ssh -T git@giteecom,如果返回success则说明配置成功了。
注意事项:
版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。
使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(git的remote要使用SSH地址)至此以后只要拷贝ssh链接地址,然后利用git指令即可进行相关 *** 作!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)