浪子huang 2019-06-27
ssh登录服务器的方法大体上分为两种:
本文主要阐述如何使用密钥进行登录,以如如何管理多个密钥对。
即然是密钥对,就说是两个密钥,我们把其中一个需要存在本地计算机的密钥称为私钥,把另一个存放到服务器的密钥称为公钥。
私钥:要保护好的,不能通过网络传输的。
公钥:可以公开的,可以通过任何途径传输的。
生成密钥对的方式有很多。
如果你使用的是mac os,那么可以通过以下命令创建:ssh-keygen -t rsa
创建过程中,会提示你输出使用这个密钥的密码,我们一路回车,留空处理。
该命令可以在~/.ssh中生成两个文件:
id_rsa(私钥) 以及 id_rsa.pub(公钥)
我们连接服务器,并将id_rsa.pub上传至服务器。
然后将id_rsa.pub的内容追加到~/.ssh/authorized_keys
文件中
cat id_rsa.pub >> ~/.ssh/authorized_keys
并重启sshd服务
当我们再次登录的时候,发现已经不需要输入密码了。
如果你有多个服务器需要管理,在生成一次密钥对后,将公钥分别的追加到相应服务器用户的~/.ssh/authorized_keys
中即可。
如果我们在单位有一台电脑,在家还有一台电脑,都需要远程服务器呢
方法还是一样的:
在单位电脑上生成公钥,追加到authorized_keys中。
在自己电脑上再生成公钥,追加到authorized_keys中。
在这简单提下对称加密与非对称加密的区别:
对称加密:加密与解密密码相同,所以我把加密密码(钥)告知你的同时,你也同时掌握了我的解密密码。
非对称加密:加密与解决密码不同,所以即使我把加密密钥告诉你,你用加密的密码也解不开我加密的内容。
有兴趣的同学,可以搜索一下RSA非对称加密。
除了RSA以外,我们平常用的sha1,md5也是非对称的,它们与rsa的区别是:rsa使用a密钥加密后,还可以使用b密钥解密。但sha1,md5加密后,不提供解密算法。