1.终端输入命令:ssh-keygen -t rsa
ssh-keygen命令专门是用来生成密钥的。该命令有很多选项,这里列出了最基本的四个:
-t 用来指定密钥类型(dsa | ecdsa | ed25519 | rsa | rsa1);
-P 用来指定密语
-f 用来指定生成的密钥文件名
-C 用来添加注释
2.需要你输入一个钥匙的名称,不输入默认为:id_rsa (私钥) 和 id_rsa.pub(公钥)
通常在企业里面一台服务器有很多人使用,因此默认的名称很可能已经有人使用了,所以这里可以输入一个你自己的名字为好。
3. 输入密钥名称后,回车,会让输入密码。
4. 因为我们要免密码登录,所以别填,直接回车2次即可。
5.此时密钥已经生成好了,直接去家目录下面查看即可。默认存储在 C:Users用户名.ssh 目录下。如果本地的是UNIX操作系统,
vim /etc/ssh/sshd_config -->去掉以下三行的注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启sshd,service sshd restart或者systemctl restart sshd.service,这时支持远程ssh连接。
6.此时我们要把公钥(.pub结尾的那个)放到,你想要控制的那台服务器上面对应 [ 登录用户 ] 的目录下面(例如:/home/登录用户名/),上传到服务器。
7.服务器的root 的家目录下面的.ssh文件夹下面,没有authorized_keys的话,就把传上去的公钥改名为这个名字,否则就把刚才的xxx.pub里面的内容追加到里面的authorized_keys的末尾.
追加命令: cat xxxx.pub >> authorized_keys。
注意:如果是第一次运行SSH,那么.ssh目录需要手动创建,此目录必须为空文件夹,特别注意的是.ssh目录,authorized_keys 文件的权限问题,权限设置 600
8.此时可以尝试免密码登录了,第一次客户机登录服务机时 有一个询问:没有密码登录的询问,回答yes 就可以了,以后就免密登录了。ssh root@192.168.5.31 发现就进去了。