SSH无密码登录

就标题而言,这个题目没有任何新意。网络上一搜一大把,各种原理解析,各种操作实践。不过貌似就没有人专门写写,怎么实现类似AWS那种使用PEM文件来登录的办法。今天琢磨了那么一会,然后实现了这个功能。

首先,是要用ssh-keygen命令来生成密钥对,具体的生成过程这里就不多少了,还是,网络上一搜一大把的文章的问题,不需要在这里多说。我是用

ssh-keygen –b 4096 –t rsa

生成了4096位RSA密钥对。用于生成这个密钥对文件的机器,可以是任何一台运行着正常的openssh的机器,至于什么叫正常的 openssh,你懂的,这台机器并不必须是你目前的客户机或者要登录的服务器这两台机器之一。生成过程中记得指定一下文件名,其中私钥文件,其实就是 aws的那个.pem文件。

生成好密钥对之后,把公钥文件传到你要登录的服务器上。把其中的内容续写到~/.ssh/authorized_keys文件。这个文件名是可以改 变的,它是记录在/etc/ssh/sshd_config文件中的AuthorizedKeysFile这个项目里面的。续写,懂吧,就是假设你的公钥 文件叫做pubkey,那么就得用下面这个命令:

cat pubkey >> ~/.ssh/authorized_keys

然后,记得在/etc/ssh/sshd_config里面,把PasswordAuthentication改成no。再重启一下ssh服务。就是

sudo service ssh restart

然后你再登录这个服务器的时候,就得用ssh –i xxxxx.pem来做了。这个pem就是刚才的私钥文件。

这个时候,再用一般的登录方式,会直接被拒绝登录。

此条目发表在软件使用与程序设计分类目录。将固定链接加入收藏夹。