“Ssh-agent”与“Ssh-keygen”:页面之间的差异

来自linuxsa wiki
(页面间差异)
跳转到导航 跳转到搜索
Evan留言 | 贡献
 
Evan留言 | 贡献
 
第1行: 第1行:
=Usage=
<pre>


使用加密pri key and 有多个pri key
先将ssh-agent运行起来:


$ ssh-agent
== ssh-keygen ==
SSH_AUTH_SOCK=/tmp/ssh-GiORRAqMXEFt/agent.28161; export SSH_AUTH_SOCK;
<pre>用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。
SSH_AGENT_PID=28162; export SSH_AGENT_PID;
 
echo Agent pid 28162;
-C:添加注释; -f:指定用来保存密钥的文件名
-f:指定用来保存密钥的文件名;


输出结果中明确说明了导出了几个环境变量,同时也可以知道ssh-agent使用Unix Domain套接字的方式监听在本机上以及其pid为28162。到时候可以直接使用kill 28162杀掉这个进程,更直接的方式是使用ssh-agent -k,它会根据当前的环境变量SSH_AGENT_PID来杀进程。
-t:指定要创建的密钥类型。


输出结果中明确说明了导出了几个环境变量,同时也可以知道ssh-agent使用Unix Domain套接字的方式监听在本机上以及其pid为28162。到时候可以直接使用kill 28162杀掉这个进程,更直接的方式是使用ssh-agent -k,它会根据当前的环境变量SSH_AGENT_PID来杀进程。
如果key 要密码


Enter passphrase (empty for no passphrase):
Enter same passphrase again:


# 先杀掉刚才的ssh-agent
#知识点 缺点
$ kill 28162
  DSA 只能用于数字签名,而无法用于加密(某些扩展可以支持加密);RSA 即可作为数字签名,也可以作为加密算法。不过作为加密使用的 RSA 有着随密钥长度增加,性能急剧下降的问题。


$ eval `ssh-agent`
  RSA 与 DSA 各有优缺点,那有没一个更好的选择呢?答案是肯定的,ECC(Elliptic Curves Cryptography):椭圆曲线算法。
Agent pid 28173


ssh客户端上运行ssh-agent后,就可以使用ssh-add命令向ssh-agent添加私钥(如果私钥使用了passhprase密码,则要求输入一次密码)。
在 ssh-keygen 中,ECC 算法的相应参数是 “-t ecdsa”。可惜的是由于椭圆曲线算法只有在较新版本的 openssl 与 ssh-keygen 中才被支持,而无法得到普遍使用而去完全替代 RSA/DSA。不过由于椭圆曲线算法的优点,使其取代 RSA/DSA 而成为新一代通用的非对称加密算法成为可能,至少 SET 协议的制定者们已经把它作为下一代 SET 协议中缺省的公钥密码算法了
ssh客户端上运行ssh-agent后,就可以使用ssh-add命令向ssh-agent添加私钥(如果私钥使用了passhprase密码,则要求输入一次密码)。


$ ssh-add #现在这个命令就会添加所有的pri key了
$ ssh-add ~/.ssh/id_rsa_1
$ ssh-add ~/.ssh/id_rsa_2


默认会添加~/.ssh/下的所有私钥类文件(~/.ssh/id_rsa, .ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519, ~/.ssh/identity),也可以指定要添加的文件。正如上面给出的示例。
</pre>


ssh-add命令是查找当前环境变量SSH_AUTH_SOCK的值并发送添加请求给对应套接字的,所以这个套接字环境变量非常重要。
[http://blog.sina.com.cn/s/blog_6f31085901015agu.html SSH 密钥类型的的选择(RSA, DSA or Other)]


之后再使用公钥认证就可以直接连接到目标主机:
== 举例==
<pre>
#建议用这个
#######
ssh-keygen -t ecdsa -C freebsd


查看已添加的prikey
% cat  .ssh/id_ecdsa.pub
ssh-add -L
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLxz+f3DW9jYoBHO8CUGXawHUpA2GRsLPB59xlrBat9eU7Sx461zNkSNfYDWI+Cg4l4VxENv1gOiWesUBKlbqfw= freebsd
</pre>
 
evan@freebsd-512mb-sfo2-01:~ % ls .ssh/
authorized_keys id_ecdsa id_ecdsa.pub known_hosts
#######


=prikey 转发功能 agent forwarding=
A B C  就像以前的登录openqq
=see also=


[https://www.cnblogs.com/f-ck-need-u/p/10484531.html  ssh转发代理:ssh-agent用法详解 ]
[root@vm .ssh]# ssh-keygen -C evanlovekey  -f evankey
[root@vm .ssh]# ls
authorized_keys    evankey  evankey.pub  known_hosts
</pre>
http://man.linuxde.net/ssh-keygen
== ssh-copy-id==
ssh-copy-id --i lkey.pub  root@192.168.10.57 #有时要加-f


[https://blog.csdn.net/cityzenoldwang/article/details/77097661  ssh-add 配合 ssh-agent 免密登陆多台机器。]
[[category:ops]]
[[category:ops]] [[category:linux]]

2020年11月5日 (四) 08:36的最新版本


ssh-keygen

用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。

-C:添加注释; -f:指定用来保存密钥的文件名
-f:指定用来保存密钥的文件名;

-t:指定要创建的密钥类型。

如果key 要密码 

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

#知识点 缺点 
   DSA 只能用于数字签名,而无法用于加密(某些扩展可以支持加密);RSA 即可作为数字签名,也可以作为加密算法。不过作为加密使用的 RSA 有着随密钥长度增加,性能急剧下降的问题。

   RSA 与 DSA 各有优缺点,那有没一个更好的选择呢?答案是肯定的,ECC(Elliptic Curves Cryptography):椭圆曲线算法。

 在 ssh-keygen 中,ECC 算法的相应参数是 “-t ecdsa”。可惜的是由于椭圆曲线算法只有在较新版本的 openssl 与 ssh-keygen 中才被支持,而无法得到普遍使用而去完全替代 RSA/DSA。不过由于椭圆曲线算法的优点,使其取代 RSA/DSA 而成为新一代通用的非对称加密算法成为可能,至少 SET 协议的制定者们已经把它作为下一代 SET 协议中缺省的公钥密码算法了


SSH 密钥类型的的选择(RSA, DSA or Other)

举例

#建议用这个 
#######
ssh-keygen -t ecdsa -C freebsd

% cat  .ssh/id_ecdsa.pub 
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLxz+f3DW9jYoBHO8CUGXawHUpA2GRsLPB59xlrBat9eU7Sx461zNkSNfYDWI+Cg4l4VxENv1gOiWesUBKlbqfw= freebsd

evan@freebsd-512mb-sfo2-01:~ % ls .ssh/
authorized_keys	id_ecdsa	id_ecdsa.pub	known_hosts
#######


[root@vm .ssh]# ssh-keygen -C evanlovekey  -f evankey
[root@vm .ssh]# ls 
authorized_keys    evankey  evankey.pub  known_hosts
http://man.linuxde.net/ssh-keygen

ssh-copy-id

ssh-copy-id -f  -i lkey.pub   root@192.168.10.57 #有时要加-f