Linux下ssh加密方式的远程连接

1.ssh的加密方式远程连接原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

2.ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的 时候可以将验证申请交给ssh-agent来完成整个认证过程。

操作:

1. [root@tx1 ~]# ssh-keygen -t rsa        //采用rsa的加密方式的公钥/私钥对

Generating public/private rsa key pair.    //提示正在生成

Enter file in which to save the key (/root/.ssh/id_rsa):  //询问输入私钥和公钥放在那里,Enter

Created directory '/root/.ssh'.                    //私钥对在这个目录下

Enter passphrase (empty for no passphrase):      //这里可以给私钥设置密码(敲Enter可实现自动登录,登录时不需要私钥密码)

Enter same passphrase again:  //提示再次输入私钥密码,再次回车

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.  //提示公钥和私钥已经存放在这个目录下

The key fingerprint is:

de:9c:47:95:19:1c:da:83:9f:b2:f8:fd:30:27:70:74 root@tx1.linuxidc.com

//提示key的指纹

注:#ssh-keygen -b 1024 -t dsa  //还可以采用dsa的加密方式

-b  1024 采用长度为1024字节的公钥/私钥对,最长4096字节,一般1024或2048

就可以了,太长的话加密解密需要的时间也长。

-t  dsa  采用dsa加密方式的公钥/私钥对,除了dsa还有rsa方式,rsa方式最短不能小于768字节长度。

2.

[root@tx1 ~]# cd /root/.ssh

[root@tx1 .ssh]# ls

id_rsa  id_rsa.pub

[root@tx1 .ssh]# ssh 192.168.8.71

The authenticity of host '192.168.8.71 (192.168.8.71)' can't be established.

RSA key fingerprint is 11:21:c7:14:71:a6:68:b3:6c:fb:cd:b2:25:21:bd:9f.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.8.71' (RSA) to the list of known hosts.

root@192.168.8.71's password:

Last login: Wed Feb  6 19:43:02 2013 from 192.168.8.70

[root@tx2 ~]# exit

[root@tx1 .ssh]# ls

id_rsa  id_rsa.pub  known_hosts

这里为了说明一下known_hosts这个文件当ssh过其他机器时就会生成这个文件,再一次ssh时就不会有yes的那个选项了

[root@tx1 .ssh]# scp id_rsa.pub 192.168.8.71:/root/.ssh/authorized_keys

root@192.168.8.71's password:

id_rsa.pub                                  100%  404    0.4KB/s  00:00

[root@tx1 .ssh]# ssh 192.168.8.71

Last login: Wed Feb  6 19:43:39 2013 from 192.168.8.70

[root@tx2 ~]#

这里我把id_rsa.pub直接改名为authorized_keys了,如果之前另一台机器有这个文件,不要直接改名,先scp过去,然后在另一台机器上执行#cat id_rsa.pub >> /root/.ssh/authorized_keys命令,因为authorized_keys可能会保存着其他的公钥

另一台机器再做一遍相同操作就可以相互ssh加密连接

注意:  .ssh 的权限必须是700.否则ssh服务器会拒绝登录

私钥的权限必须是600.否则ssh服务器会拒绝登录

3.把私钥加密

[root@tx1 ~]# eval `ssh-agent`

Agent pid 14877

[root@tx1 ~]# ssh-add

Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

如果之前给私钥密码#ssh 192.168.8.71时是需要输入私钥密码的,执行完这两条命令就不用了,#ssh-add需要输入私钥密码,这是验证就交给ssh-agent来管理了

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3353f1b9104ab0fc798da847751ac4ab.html