本文将带您了解关于如何将使用PuTTYgen的新内容,同时我们还将为您解释Windows生成的SSH密钥对转换为ssh-agent和Keychain的相关知识,另外,我们还将为您提供关于Android
本文将带您了解关于如何将使用PuTTYgen的新内容,同时我们还将为您解释Windows生成的SSH密钥对转换为ssh-agent和Keychain的相关知识,另外,我们还将为您提供关于Android SSH:将PuttyGen PPK转换为Dropbear密钥、CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数、CMD.exe 和 Powershell.exe 无法使用 ssh-keygen 生成 ssh 密钥、Github 生成新的SSH密钥并添加至SSH-Agent的实用信息。
本文目录一览:- 如何将使用PuTTYgen(Windows)生成的SSH密钥对转换为ssh-agent和Keychain(Linux)使用的密钥对
- Android SSH:将PuttyGen PPK转换为Dropbear密钥
- CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数
- CMD.exe 和 Powershell.exe 无法使用 ssh-keygen 生成 ssh 密钥
- Github 生成新的SSH密钥并添加至SSH-Agent
如何将使用PuTTYgen(Windows)生成的SSH密钥对转换为ssh-agent和Keychain(Linux)使用的密钥对
我已经使用PuTTYgen生成了密钥对,并使用Pageant进行了登录,因此在系统启动时,我只需输入一次密码。
如何在Linux中实现呢?我听说过,keychain
但听说它使用了不同的密钥对格式-我不想更改Windows密钥,如果我可以在Windows和Linux中以相同的方式无缝连接,那就太好了。
答案1
小编典典puttygen支持将您的私钥导出为OpenSSH兼容格式。然后,您可以使用OpenSSH工具重新创建公用密钥。
- 打开
PuttyGen
- 点击加载
- 加载您的私钥
- 转到
Conversions->Export OpenSSH
并导出您的私钥 - 将您的私钥复制到
~/.ssh/id_dsa
(或id_rsa
)。 - 使用以下命令创建RFC 4716版本的公共密钥
ssh-keygen
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
将RFC 4716版本的公钥转换为OpenSSH格式:
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
Android SSH:将PuttyGen PPK转换为Dropbear密钥
我正在开发一个Android应用程序,该应用程序通过SSH使用RSYNC与网络文件夹同步.但是我对puttygen ssh提供的密钥有问题:字符串太长.我发现设备中安装的ssh客户端是dropbear ssh客户端.为此,我必须将PuttyGen PPK转换为Dropbear密钥.
有没有办法将PuttyGen PPK转换为Dropbear Key?
我可以使用我的ubuntu机器转换它吗?这样我就可以将生成的密钥复制到我的android设备上?
解决方法:
将dropbear源下载到您的计算机上,进行构建,您应该有权使用dropbearconvert来将OpenSSH格式化的密钥转换为dropbear格式.
仅执行apt-get install dropbear不会安装dropbearconvert工具.
编辑:
哦,您可以使用puttygen.exe将PPK文件转换为OpenSSH.
文件菜单->加载您的PPK文件.
转化菜单->导出为OpenSSH文件.
CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数
密钥登录步骤(免密码登录)
ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方法。
使用密钥登录分为3步:
1、生成密钥(公钥与私钥);
2、放置公钥到服务器~/.ssh/authorized_key文件中;
3、配置ssh客户端使用密钥登录。
---------------------
一、通过ssh-keygen命令生成密钥对,密钥类型为RSA,也可以通过其他软件生产密钥对。
==========================================================================
[email protected]:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pipci/.ssh/id_rsa): <==这里输入私钥名,直接回车就可以名字就为括号中默认的名字
Enter passphrase (empty for no passphrase): <==输入密码,自动登录设置为空,直接回车就可以
Enter same passphrase again: <==输入确认密码,直接回车就可以
Your identification has been saved in /home/pipci/.ssh/id_rsa. <==生成的私钥名和位置
Your public key has been saved in /home/pipci/.ssh/id_rsa.pub. <==生成的公钥名和位置
The key fingerprint is:
SHA256:Hsi5oo0Yr1a9eXtgNeLlu/UAJx1EiH34Gghv96FeXEs [email protected]
The key‘s randomart image is:
+---[RSA 2048]----+ <==密钥的位数
| o +o |
| . . +.. |
| o . o. |
| . B *.o.E |
| . * SoBo+ . |
| . . * =++ . |
|. . . = + oo |
| = + + . +. o |
|+.+ . ..o.. . |
+----[SHA256]-----+
[email protected]:~$
===================================================================
查看生成的密钥文件:
===================================================================
[email protected]:~$ ls -l .ssh/
-rw------- 1 pipci pipci 1679 10月 19 11:45 id_rsa
-rw-r--r-- 1 pipci pipci 394 10月 19 11:45 id_rsa.pub
[email protected]:~$
===================================================================
注意两点:
1、生成密钥对输入密码的作用是保护本地私有密钥的密码,也就是说,即使有人到用了你的计算机或私钥文件,没有这个密码依然不能使用你的私钥,在使用密钥登录时候也会要求你输入密码,这个密码就是生成密钥对时候输入的密码,用来解锁私钥文件,密码最低5个字符。
2、生成密钥对的私钥权限必须是600公钥权限是644,即只能本人可以查看私钥文件,除了本人以外的任何用户都不能产看,别人可以查看也就意味着任何人都可以通过这个私钥登录了,显然这是不安全的,公钥可以随便查看,但是不能修改内容,修改了还怎么配对登录。同时密钥对的父目录.ssh的权限必须是700即只有本人可以查看和进入。如果是通过命令新创建的.ssh默认就是700权限,创建完查看下就可以,如果不是更改权限。如果不是上面说的权限,客户端登录时候可能会出错。
二、通过scp命令将id_rsa.pub公钥文件复制到远程服务器:
====================================================================
[email protected]:~$ scp /home/pipci/.ssh/id_rsa.pub [email protected]:/home/laopi/.ssh/
[email protected]‘s password:
id_rsa.pub 100% 394 0.4KB/s 00:00
[email protected]:~$
=====================================================================
通过scp命令复制,前提是远程服务器已经开启ssh密码登录,将公钥文件复制到用来管理用户主目录下面的.ssh目录如果不存在先创建这个目录。这个.ssh的目录权限
必须设置成700要不然登录会提示没有权限的错误,上面的例子远程服务器的ip地址为192.168.1.166用户名为laopi(普通用户)
三、远程服务器的配置
1、将上传的公钥文件导成或重命名成authorized_keys文件或
[[email protected] ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys #导成
2、编辑ssh的配置文件。
vim /etc/ssh/sshd_config
要确保下面这两项目前面没有#使之生效
---------------------------------------------------------------
PubkeyAuthentication yes #允许公钥认证
AuthorizedKeysFile .ssh/authorized_keys #指定包含用于用户身份验证的公钥的文件
---------------------------------------------------------------
为了安全考虑禁用root账户登录
PermitRootLogin no #选项前面可以加#号注释掉,同样会禁用root用户
有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no #选项前面可以加#号注释掉,同样会禁用密码登录
重启一下ssh服务,这样ssh配置才能生效:
[[email protected] ~]# service sshd restart
四、ssh-keygen 命令常用参数
$ ssh-keygen 参数
常用参数:
-t 指定要创建的密钥类型,如:-t dsa(SSH-2) | ecdsa | ed25519 | rsa(SSH-2)| rsa1(SSH-1)
-b bits 指定密钥长度。对于 RSA 密钥,最小要求 768 位,默认是 2048 位
-C comment 提供一个注释。
-N new_passphrase 提供一个新的密语。
-F hostname
在 kNown_hosts 文件中搜索指定的 hostname ,并列出所有的匹配项。 这个选项主要用于查找散列过的主机名/ip地址,还可以和 -H 选项联用打印找到的公钥的散列值。
-H 对 kNown_hosts 文件进行散列计算。这将把文件中的所有主机名/ip地址替换为相应的散列值。原来文件的内容将会添加一个".old"后缀后保存。这些散列值只能被 ssh 和 sshd 使用。这个选项不会修改已经经过散列的主机名/ip地址,因此可以在部分公钥已经散列过的文件上安全使用。
-R hostname
从 kNown_hosts 文件中删除所有属于 hostname 的密钥。这个选项主要用于删除经过散列的主机(参见 -H 选项)的密钥。
-f filename 指定密钥文件名
-l 显示公钥文件的指纹数据。它也支持 RSA1 的私钥。对于 RSA 和 DSA 密钥,将会寻找对应的公钥文件,然后显示其指纹数据。
1、查看id_rsa.pub的公钥指纹
[email protected]:~$ ssh-keygen -lf .ssh/id_rsa.pub
2048 SHA256:Hsi5oo0Yr1a9eXtgNeLlu/UAJx1EiH34Gghv96FeXEs [email protected] (RSA)
1、用 md5 的方式查看指纹数据
[email protected]:~$ ssh-keygen -E md5 -lf .ssh/id_rsa.pub
2048 MD5:fa:ba:4b:35:18:7f:5f:94:f0:6b:b5:7a:89:98:f9:a5 [email protected] (RSA)
CMD.exe 和 Powershell.exe 无法使用 ssh-keygen 生成 ssh 密钥
如何解决CMD.exe 和 Powershell.exe 无法使用 ssh-keygen 生成 ssh 密钥?
希望你能帮助我。我一直在玩一些 SSH 身份验证。我不知道为什么会发生这种情况,但是现在当我运行一个简单的 ssh-keygen
命令时,除了显示“此应用程序无法在您的PC。要查找适用于您的 PC 的版本,请与软件发行商联系”。
然后我尝试在 Powershell 中运行 ssh-keygen 命令(以管理员和普通用户身份)并得到以下结果:
Access is denied.
但是,使用 ssh -V 显示已安装:
Program ''ssh-keygen.exe'' Failed to run: The specified executable is not a valid application for this OS platform.At
line:1 char:1
+ ssh-keygen
+ ~~~~~~~~~~.
At line:1 char:1
+ ssh-keygen
+ ~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [],ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed
我仍然可以通过 SSH 正常连接到其他设备,如果有任何相关的话。
非常感谢这里的任何帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Github 生成新的SSH密钥并添加至SSH-Agent
问题:hexo d 时出现错误 Error: ERROR: Permission to
remote: Permission to huweihuang/hexo-theme-huweihuang.git denied to wanghaijuan.
fatal: unable to access ''https://github.com/huweihuang/hexo-theme-huweihuang/'': The requested URL returned error: 403
FATAL Something''s wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: remote: Permission to huweihuang/hexo-theme-huweihuang.git denied to wanghaijuan.
fatal: unable to access ''https://github.com/huweihuang/hexo-theme-huweihuang/'': The requested URL returned error: 403
at ChildProcess.<anonymous> (D:\project\blog\hexo-huweihuang\node_modules\hexo-deployer-git\node_modules\hexo-util\lib\spawn.js:37:17)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at ChildProcess.cp.emit (D:\project\blog\hexo-huweihuang\node_modules\cross-spawn-async\lib\enoent.js:37:29)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
原因:huweihuang/hexo-theme-huweihuang.git 拒绝接受 wanghaijuan。说明当前有两个Github账号,可以更新博客。
在该主题下修改_config.yml中的deploy修改成自己项目地址:
如果未成功,还有可能是新的Github账号没有配置好。
解决办法:在Github生成新的SSH密钥
配置步骤:
一、生成新的SSH密钥
1、打开Git Bash。
2、 进入.ssh 根目录下。
cd ~/.ssh
3、输入GitHub电子邮件地址,其中your_email@example.com是您关联的GitHub邮箱。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
4、输入保存的密钥文件并接受默认文件地址,按Enter键
// 用提供的电子邮件作为标签创建一个新的ssh密钥。(无需操作)
Generating public/private rsa key pair.
// 输入名称并按Enter键,其中hexo_rsa可自行设置
Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):hexo_rsa
5、输入安全密码,没有则为空,按Enter键进行下一步
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
此时,应该在默认路径下,生成了两个文件,一个是hexo_rsa,另一个是hexo_rsa.pub;
二、将SSH密钥添加到SSH-Agent
在将新的SSH密钥添加到SSH-Agent管理密钥之前,您应该检查现有的SSH密钥。
ls -al ~/ .ssh
看下返回的结果中是否已经存在了.pub结尾的文件,如果没有需要生成一个新的,如果存在了,直接看将SSH密钥配置到Github账户;
6、启动ssh-agent,执行命令:
eval $(ssh-agent -s)
返回agent的Pid:
7、将SSH密钥添加到SSH-Agent,其中hexo_rsa是生成SSH设置的名称
ssh-ADD~ /.ssh/hexo_rsa
8、打开hexo_rsa.pub文件,复制其内容,然后打开Github账户,按图片步骤设置,最后将复制内容放置Key内容中,设置title,点击添加即可。
验证SSH链接是否成功:
输入命令:
ssh -T git@github.com
你将会看到
输入Yes就可以啦~
相关链接: https://help.github.com/artic...
更多文章分享:https://www.artroy.com.cn/
我们今天的关于如何将使用PuTTYgen和Windows生成的SSH密钥对转换为ssh-agent和Keychain的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android SSH:将PuttyGen PPK转换为Dropbear密钥、CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数、CMD.exe 和 Powershell.exe 无法使用 ssh-keygen 生成 ssh 密钥、Github 生成新的SSH密钥并添加至SSH-Agent的相关信息,请在本站查询。
本文标签: