ssh 公钥认证方式登录


转载

原文地址:

http://blog.csdn.net/hunanchenxingyu/article/details/40544513

http://flysnowxf.iteye.com/blog/1567570

一般情况下,我们用ssh远程登录到服务器时,要输入用户名和密码。这对经常维护系统的人来说,很麻烦。怎样才能不用密码直接登录到远程的linux/unix服务器呢?ssh公钥认证可以解决这个问题。

公钥认证,是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。 通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。

在使用公钥认证之前,先检查一下服务器的ssh配置文件/etc/ssh/sshd_config

RSAAuthentication yes           #启用 RSA 认证,默认为yes
PubkeyAuthentication yes      #启用公钥认证,默认为yes
AuthorizedKeysFile     .ssh/authorized_keys  

然后再在客户机上生成公钥和私钥:

 cd ~/.ssh                       #切换到ssh目录
ssh-keygen -t rsa            #以rsa的加密方式生成秘钥对 

此时出现:

Enter file in which to save the key (/home/client/.ssh/id_rsa): 

直接按enter即可,或者自己命名一个文件来存储生成的秘钥对。(注意使用公钥连接服务器,默认指定的秘钥文件名为id_rsa和id_rsa.pub,如果指定其他名可能需要修改ssh配置文件)

将生成的公钥id_rsa.pub里的内容复制到服务端authorized_keys(新加一行)

重启ssh服务,到此即可通过公钥来访问服务器了

 

ssh可同时支持publickey和password两种授权方式,publickey默认不开启,需要配置为yes。 
如果客户端不存在.ssh/id_rsa,则使用password授权;存在则使用publickey授权;如果publickey授权失败,依然会继续使用password授权。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM