上面示例中,执行ssh-keygen命令以后,会出现第一个问题,询问密钥保存的文件名,默认是~/.ssh/id_dsa文件,这个是私钥的文件名,对应的公钥文件~/.ssh/id_dsa.pub是自动生成的 。用户的密钥一般都放在主目录的.ssh目录里面 。
注意所用目录应该是一个已经存在的.ssh/空文件夹(有ssh/文件夹,这个文件夹里面是空的),否则会报错 。接着,就会是第二个问题,询问是否要为私钥文件设定密码保护(passphrase) 。这样的话,即使入侵者拿到私钥,还是需要破解密码 。如果为了方便,不想设定密码保护,可以直接按回车键,密码就会为空 。后面还会让你再输入一次密码,两次输入必须一致 。注意,这里“密码”的英文单词是 passphrase,这是为了避免与 Linux 账户的密码单词 password 混淆,表示这不是用户系统账户的密码 。
最后,就会生成私钥和公钥,屏幕上还会给出公钥的指纹,以及当前的用户名和主机名作为注释,用来识别密钥的来源 。
公钥文件和私钥文件都是文本文件,可以用文本编辑器看一下它们的内容 。公钥文件的内容类似下面这样 。
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvpB4lUbAaEbh9u6HLig7amsfywD4fqSZq2ikACIUBn3GyRPfeF93l/weQh702ofXbDydZAKMcDvBJqRhUotQUwqV6HJxqoqPDlPGUUyo8RDIkLUIPRyqypZxmK9aCXokFiHoGCXfQ9imUP/w/jfqb9ByDtG97tUJF6nFMP5WzhM= username@shell.isp.com
上面示例中,末尾的username@shell.isp.com是公钥的注释,用来识别不同的公钥,表示这是哪台主机(shell.isp.com)的哪个用户(username)的公钥,不是必需项 。博主在使用时删除了末尾的注释,亲测可以使用注意,公钥只有一行 。因为它太长了,所以上面分成三行显示 。
手动上传公钥生成密钥以后,公钥必须上传到服务器,才能使用公钥登录 。
OpenSSH 规定,用户公钥保存在服务器的~/.ssh/authorized_keys文件 。你要以哪个用户的身份登录到服务器,密钥就必须保存在该用户主目录的~/.ssh/authorized_keys文件 。只要把公钥添加到这个文件之中,就相当于公钥上传到服务器了 。每个公钥占据一行 。如果该文件不存在,可以手动创建 。
用户可以手动编辑该文件,把公钥粘贴进去,也可以在本机计算机上,执行下面的命令 。
$ cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
上面示例中,user@host要替换成你所要登录的用户名和主机名 。注意,authorized_keys文件的权限要设为644,即只有文件所有者才能写 。如果权限设置不对,SSH 服务器可能会拒绝读取该文件 。
$ chmod 644 ~/.ssh/authorized_keys
只要公钥上传到服务器,下次登录时,OpenSSH 就会自动采用密钥登录,不再提示输入密码 。$ ssh -l username shell.isp.comEnter passphrase for key '/home/you/.ssh/id_dsa': ************Last login: Mon Mar 24 02:17:27 2014 from ex.ample.comshell.isp.com>
上面例子中,SSH 客户端使用私钥之前,会要求用户输入密码(passphrase),用来解开私钥 。需要注意的是在Windows terminal中ssh-copy-id无法使用,只能手动上传密钥创建示例附上我的密钥创建实例:
PS C:Usersadmin> ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (C:Usersadmin/.ssh/id_rsa): C:UsersadminOneDrive/.ssh/id_rsaEnter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved inC:UsersadminOneDrive/.ssh/id_rsa.Your public key has been saved in C:UsersadminOneDrive/.ssh/id_rsa.pub.The key fingerprint is:***The key's randomart image is:***PS C:Usersadmin> cat C:UsersadminOneDrive/.ssh/id_rsa.pub//此步显示所创建的公钥,复制所有内容PS C:Usersadmin> ssh kerm@52.184.**.**kerm@HK1:~$ sudo -iroot@HK1:~# mkdir -p ~/.sshroot@HK1:~# nano ~/.ssh/authorized_keys//将之前复制的公钥贴入,我将=号后的内容删除,因为有多台设备利用这个公钥登录root@HK1:~# chmod 644 ~/.ssh/authorized_keys
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 任贤齐的妻子 任贤齐老婆多大
- 照片做视频哪个软件好时间也长 手机照片做成视频的软件介绍
- 新款捷豹20万一30万车 捷豹20万左右的车型
- 讴歌算不算豪车 讴歌属于什么档次的车
- 禁忌二贴春联的时间
- 买骨头的时候要挑选含有大量软骨的骨头
- 喝骨头汤真的可以补钙吗
- 骨头汤怎么熬最补钙骨头汤的做法
- 好男有福一身毛的意思是什么真的有道理么
- 为什么有的猪肉闻起来有股骚味