ssh-keygen生成公私钥免密码登录远程服务器

时间:2022-07-07 14:28:37

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 发现就进去了。