在使用VPS的过程中,开放账户密码登录或是root登录,会存在一定的风险,而且每次都需要输入密码,操作十分的不Fashion。所以,这里介绍ssh使用RSA密钥来实现免密登录远程主机的设置方式。
-
首先需要登录到Server
使用如下命令生成密钥对,默认生成目录是~/.ssh$ ssh-keygen -t rsa $ # 一路回车即可
在~/.ssh中会生成两个文件,id_rsa(私钥),id_rsa.pub(公钥)。
-
将公钥写入信任列表中
查看在~/.ssh中是否存在authorized_keys文件。$ # 若是不存在authorized_keys文件,新建即可 $ # touch authorized_keys $ cat id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys $ chmod 700 ~/.ssh
-
转换私钥格式并导出
使用puttygen工具将私钥id_rsa转换为private-openssh格式。$ sudo apt install putty-tools $ puttygen ~/.ssh/id_rsa -C "Sever" -o ~/.ssh/id_rsa.pem -O private-openssh $ chmod 400 ~/.ssh/id_rsa.pem
使用scp命令或者WinSCP,将~/.ssh/id_rsa.pem下载分到本地,以后就可以使用密钥对免密登录服务器了。
ssh -i xxx.pem username@your.server.IP.addr
-
验证成功后关闭账号密码登录
修改/etc/ssh/sshd_config,将参数修改为和下面一样,保存退出,其它先不要动。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启sshd服务。
$ sudo service sshd restart
本地使用私钥进行登录服务器,不成功请从头检查一遍,成功在服务器上关闭账号密码登录功能。第一个是关闭账户密码登录,第二个是关闭root账户登录,按需选择。
PasswordAuthentication no
PermitRootLogin no
重启sshd服务即可,记得保存好你的私钥。
网友评论