如何生成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
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.