Rsa 验证简介
更新日期:
文章目录
如果不是用密码来进行验证的话,那么就可以使用 rsa 数据签名来进行验证。签名分为公钥和私钥2个。公钥是可以公开出来的,密钥是自己个人持有的。一般来使用 RSA 验证的话,是自己生成一对公钥/私钥。然后把公钥放置到服务器上,自己持有公钥和私钥,然后就可以通过公钥来验证了。下面上使用简介:
假设客户端的用户 charlee 要以 guest 用户登录到服务器上。首先在客户端执行下面的命令:
// ssh-keygen: // -t 指定公钥类型,默认的是 rsa 的 // -c 是生成的公钥注释,如果不指定的话就是自己机子的终端显示的那个东西 // 其它的一些选项可以自己去查帮助文档
[charlee@client:~]$ ssh-keygen -t rsa -c "your_email@youremail.com" Generating public/private rsa1 key pair. Enter file in which to save the key (/home/charlee/.ssh/id_rsa): 回车 (这个是让你指定输出文件,直接敲回车就是括号里那个默认的路径、文件) Enterpassphrase (empty for no passphrase): 回车 (这个是让你输入你公钥的密码,直接敲回车就不设定密码) Enter same passphrase again: 回车 Your identification has been sabed in /home/charlee/.ssh/id_rsa Your public key has been saved in /home/charlee/.ssh/id_rsa.pub
生成的文件保存在主目录的 .ssh 目录下,id_rsa 为客户端密钥,id_rsa.pub 为客户端公钥。之后,通过 U 盘等方式将公钥 id_rsa.pub 复制到服务器上,并执行下列命令。
[guest@server:~]$ cat id_rsa.pub >> .ssh/authorized_keys
其实还可以执行 ssh-copy-id mingming@192.168.0.8 把公钥弄到服务器上。其中 id_rsa.pub 是客户端的用户 charlee 的公钥。这样在客户端即可通过以下的命令连接服务器。到此基本可以配对两台机的公钥了。
[charlee@client:~]$ ssh -l guest server
若不想每次登录服务器时都输入密码,可以先执行下列命令:
// 如果提示 ssh not find agent 之类的,可以输入 eval `ssh-agent` 启动 ssh agent [charlee@client:~]$ ssh-add Enter passphrase for /home/charlee/.ssh/id_rsa: 输入密码 Identity added: /home/charlee/.ssh/id_rsa (/home/charlee/.ssh/id_rsa)
以后登录服务器就不需要输入密码了。
如果出现: Permissions 0464 for ‘.ssh/id_rsa’ are too open. 之类的错误,把私钥文件(id_rsa)权限改为 600 就可以了。