如何:创建一个公钥私钥对?

如何:创建一个公钥私钥对?,第1张

为了用强命名标识一个程序集,你必须拥有一对公钥和私钥。这一对公钥私钥加密密钥用作编译期间生成强命名的程序集(汇编程序)你可以使用强命名工具(Snexe)创建一个密钥对密钥文件通常都具有一个snk的文件扩展名。●创建一个密钥对 在命令提示符下,键入以下命令: Sn –k <file name>在此命令中,<file name>是一个包含密钥对的输出文件的名字。以下例子是创建一个名叫sgKeysnk的密钥对文件sn –k sgKeysnk如果你希望延迟标识程序集并且也希望控制整个密钥对(它不像外部测试情景,场景),你可以用一下命令生成一对密钥对,然后从此密钥对中提取公钥到一个单独的文件。首先,创建密钥对:sn –k keypairsnk然后,从上面生成的密钥对文件(keypairsnk)中提取公钥,并拷贝到一个独立的文件中:sn –p keypairsnk publicsnk一旦你创建了密钥对,你就必须将此文件放置在强命名标识工具能够找到它的位置。当运用强命名标识一个程序集的时候,程序集连接器(Assembly Linker (Alexe))会寻找与当前目录有关的密钥文件,并输出到当前目录。在使用命令行工具编译 的时候,也可以很容易的拷贝此密钥到包含代码模块的的当前目录下。

Github和码云都提供SSH协议,即用户可以用公钥认证方式连接到码云的SSH服务器。这就需要生成并部署SSH Key。下面就是我生成SSH Key的步骤,希望有所帮助:

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 私钥解密时, 要用到该密码, 需要记录下 ), 会提示再次输入检验刚才输入的密码

许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有 *** 作系统上都是相似的。

默认情况下,用户的 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指令即可进行相关 *** 作!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13340777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-18
下一篇 2023-07-18

发表评论

登录后才能评论

评论列表(0条)

保存