linux ssh登陆

原文:http://blog.csdn.net/zhaohaifan/article/details/8051694

使用 ssh-keygen生成密钥:

[root@server ~]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.     #提示正在生成rsa密钥对

Enter file in which to save the key (/home/usrname/.ssh/id_dsa):     #询问公钥和私钥存放的位置,回车用默认位置即可

Enter passphrase (empty for no passphrase):     #询问输入私钥密语,输入密语

Enter same passphrase again:     #再次提示输入密语确认

Your identification has been saved in /home/usrname/.ssh/id_dsa.     #提示公钥和私钥已经存放在/root/.ssh/目录下
Your public key has been saved in /home/usrname/.ssh/id_dsa.pub.

The key fingerprint is:
x6:68:xx:93:98:8x:87:95:7x:2x:4x:x9:81:xx:56:94 root@server     #提示key的指纹

简单说明一下:
-b 1024 采用长度为1024字节的公钥/私钥对,最长4096字节,一般1024或2048就足够满足安全需要了,太长的话加密解密需要的时间也增长。
-t rsa  采用rsa加密方式的公钥/私钥对,除了rsa还有dsa方式,rsa方式最短不能小于768字节长度。
如果还需要使用更多其他参数请参考man ssh-keygen。

在生成密钥对的过程中你被询问:输入密码短句 Enter passphrase (empty for no passphrase) ,密码短句(passphrase)是你使用一个短语或者一句话作为密码输入,再由系统内部的加密或是散列算法生成虚拟密码后,进行下一步的认证。好处是 增强了安全性不易被破解。看过很多文章,里面都把这个短句输入为空,也就是代表不使用密码短句。在这里我强烈要求你输入密码短句。可以采用SSH代理(ssh-agent),一个用来帮你记住“密码短语”的程序,这样就不用登录时输入密码短句了。 ssh-agent是OpenSSH中默认包括的ssh代理程序。

基于密钥认证的配置
# vi /etc/ssh/sshd_config
PasswordAuthentication no //禁止使用基于口令认证的方式登陆
PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆
# /etc/init.d/sshd reload

将公钥拷贝一份到authorized_keys

然后把私钥拷到客户端,客户端用私钥登陆即可

使用putty生成密钥和登陆
根据公钥认证的原理(见后面说明),认证双方任何一方都可制作该钥匙对,并且只要认证方有被认证方的公钥信息,即可匹配成功。
这里,我们先以Windows上的putty登陆Linux服务器为例说明。所以,该密钥对由putty制作。
继续前,请确保您已经把整个putty包都下载完:
其中包括:PuTTY、Puttygen、PSCP、Plink、Pagent 等工具。
1、使用puttygen制作密钥

启动puttygen工具,为兼容OpenSSH密钥,选择“SSH2 RSA”:

单击 生成 按钮,并使用鼠标在 空白区域内移动,以获得足够的随机数据供生成密钥使用:


※期间,那我们要移动鼠标,直到进度条走满为止。

完成后的窗口如下:


其中:
密钥注释:不会影响密钥的有效性,但可作为自己用于区别其他密钥的参考;
两次输入密钥密码
随后,点击  保存私钥 。
如果没有输入密钥密码,会有警告:

输入私钥的文件名:

※公钥信息可以不用保留在本地的,puttygen可以从私钥得到它,验证时也不会用到。

2、拷贝公钥信息
公钥信息:

需要把该信息拷贝到Linux服务器的特定文件中:~/.ssh/authroized_keys
其中,“~”表示对应用户的主目录,以root为例。
若.ssh目录不存在,请创建它,并把公钥信息写入文件中:
# mkdir ~/.ssh
# chmod 700 ~/.ssh
# vi ~/.ssh/authorized_keys
# chmod 644 ~/.ssh/authorized_keys
※请务必留意:文件和目录的权限问题,用户必须是将要进行认证的用户,而权限必须是0644,也就是禁止其他人对该文件写入信息。(否则,某些有心人把自己的公钥写入这里,他也可以无密码进来了)
因为,通常umask是0022或0002的,所以请使用chown和chmod修改为对应的权限咯。

4、使用putty使用密钥登陆
对putty进行一些简单配置,即可使用密钥登陆Linux服务器。
选择SSH—认证,选择刚保存的私钥文件

然后点击打开即可

 

基于密钥认证的配置
# vi /etc/ssh/sshd_config
PasswordAuthentication no //禁止使用基于口令认证的方式登陆
PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆
# /etc/init.d/sshd reload

发表评论