如何生成ssh的key

如何生成ssh的key

 

通过ssh的public key和private key我们可以在不使用密码的情况下登录远程机,这样做的好处:

1. 方便,因为你不需要记住密码
2. 相对安全,相对于密码登录
3. 使自动化的脚本执行起来更加方面,只要把key文件传递过去

机器A和机器B,现在A要通过ssh远程登录B上面。A这里可以理解为我们的家里的一台电脑,B理解位具有公网IP的一台服务器。

基本思路是:在A上面使用ssh-keygen生成keys,再用ssh-copy-id拷贝生成的key到B上面。

 

下面说说如何生成,

1. ssh-keygen命令生成key文件

然后执行下面的命令
$ ssh-keygen -t rsa

执行这个命令的过程中会问一些问题:

Enter file in which to save the key (/home/xxx/.ssh/id_rsa)

表示保存在什么地方,默认是在当前用户的家目录下面的 .ssh文件夹

Enter passphrase (empty for no passphrase):

Enter same passphrase again

表示输入密码,这个密码你可以随便设置,如果不是用密码,直接回车(2次),然后就会有下面输出:

Your identification has been saved in ./id_rsa.
Your public key has been saved in ./id_rsa.pub.
The key fingerprint is:
e0:cd:a2:f0:d2:7d:28:61:59:af:0c:22:66:8d:7c:ea xxx@yyyy.com
The key's randomart image is:
+–[ RSA 2048]—-+
|                             |
|                             |
|      o                    |
|. o  + =                |
|.=oo= o S            |
|o.o* * +               |
| .. = = .               |
|.  . . .                   |
| E                        |
+——————-+

这表示成功生成了key文件,一个public一个private的,默认名字如下:

id_rsa — 私有( private ) 

id_rsa.pub   — 公有 ( public )

2. 拷贝pubic的key到远程服务器上面

可以使用ssh-copy-id来直接copy本地的public的key到远程机器,命令如下,执行这个命令可以在任何目录

$ ssh-copy-id user@xxx.xxx.xxx.xxx

此时需要你输入一次远程机器的密码。

记住替换用你真实的用户名替换user, 用真实的ip替换xxx.xxx.xxx.xxxx

这个命令其实是写进远程服务器的

~/.ssh/authorized_keys

文件中了。

此时,从客户端不用密码直接可以链接服务器了

$ ssh user@xxx.xxx.xxx.xxx

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示