IT技术博客大学习 共学习 共进步

设置ssh无密钥登录

Elton's Blog 2013-01-08 13:05:34 浏览 3,103 次

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。telnet,因为其不安全性,在linux系统中被搁置使用了。

ssh有一套很有用的工具,其中的ssh-keygen可以用来生成private和public密钥.将生成的public密钥拷贝到远程机器后,可以使ssh到另外一台机器的登陆不用密码.具体方法如下.

1) 在本地机器中的~/.ssh/目录下执行下命令:

1
ssh-keygen-t rsa -C"your@email.com"

将生成两个文件,id_dsa和id_dsa.pub.

2) 将id_dsa.pub拷贝到远程机器,并且将id_dsa.pub的内容添加到~/.ssh/authorized_keys中.

1
cat id_dsa.pub >>authorized_keys

注意:目录.ssh和文件authorized_keys的权限必须是600.

完成这些工作后,用户从本地机器到远程机器的登录就不用密码了.

3) 关闭密码登录(可选)
如果不想再使用密码登录,可以在/etc/ssh/sshd_config中关闭
把文件中的#PasswordAuthentication yes 的#去掉,并将”yes”改成”no”
系统默认使用基于密码的验证方式,现改为基于密钥的验证方式,从而提高了系统的安全性

建议继续学习

  1. python实现自动登录discuz论坛 (阅读 32,662)
  2. 微信扫码登录网页实现原理 (阅读 17,263)
  3. 初探单点登录 SSO (阅读 10,502)
  4. Linux shell脚本使用while循环执行ssh的注意事项 (阅读 8,062)
  5. 如何设计用户登录 (阅读 6,522)
  6. 你会做Web上的用户登录功能吗? (阅读 6,262)
  7. 在ssh服务里使用chroot (阅读 5,841)
  8. 为什么要用公钥/私钥而不是密码去做SSH身份验证 (阅读 5,701)
  9. 如何让ssh登录更加安全 (阅读 5,604)
  10. ssh连接超时解决办法 (阅读 5,504)