SSH开启密钥登录
制作密钥对
在服务器上制作密钥,首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令:
ssh-keygen
#返回值如下 root@Hammer:~# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):
默认目录为/root/.ssh/id_rsa
<==按回车 进行下一步
/.ssh'.Enterpassphrase(emptyfornopassphrase)
<==输入密钥密码,或直接按回车留空(无密码)
Entersame passphrase again:
<==再输入一遍密钥密码,留空继续回车(无密码)
Youridentification has been savedin/root/.ssh/id_rsa
<==私钥
Yourpublickey has been savedin/root/.ssh/id_rsa.pub
<==公钥
Thekey fingerprintis:XX:XX:XX:XX:XX密钥指纹(牢记保存!)root用户名@host主机
现在,在 root 用户的家目录中生成了一个".ssh"的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。
#返回值如下 root@Hammer:~# ls -ls .ssh total 12 4 -rwx------ 1 root root 732 Mar 30 06:14 authorized_keys 4 -rwx------ 1 root root 3273 Mar 30 06:14 id_rsa 4 -rwx------ 1 root root 732 Mar 30 06:13 id_rsa.pub root@Hammer:~#
在服务器上安装公钥
在服务器上安装公钥以及配置权限:
cat id_rsa.pub >> authorized_keys chmod 700 ~/.ssh/*
设置 SSH,打开密钥登录功能
编辑 /etc/ssh/sshd_config 文件,进行如下设置:
搜索并修改一下项值即可:最后一项为禁用常规密码登录,请调试后再设置为NO
(No为禁用密码登录,更加安全)
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication yes
另外,请留意 root 用户能否通过 SSH 登录:
cat /etc/ssh/sshd_config | grep 'PermitRootLogin' -i
如果返回值不包含yes 或包含#注释,请手动修改!
当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:
PasswordAuthentication no
最后,重启 SSH 服务:
service sshd restart
注意:并非所有系统都有serviced 服务,若报错,请直接reboot主机!
配置私钥
将私钥 id_rsa 下载到客户端,装载密钥需要之前设置的密码。