ssh 免密码登录 Linux

免密码登录简单描述

使用非对称算法,生成一个私钥和公钥,私钥加密的数据,只有通过公钥解密。私钥自己保留,其他人无法轻易查看到你的数据,而且加密解密在本地完成,传输过程中只传输加密的数据,安全性较高。

区别于 ssh 工具记录的账号密码登录,因为工具还是记录了你的账号和密码,只是省略了你输入账号密码的过程,传输的过程中,还是会涉及账号密码的信息传输,并不算是免密码登录。

创建密钥对

ssh-keygen -t rsa -C "wenhsing.test" -f ~/.ssh/is_rsa_root

使用ssh-key-gen命令生成公钥和私钥。

-t 指定加密方式,这里指定了使用RSA加密。

-C 表示给对应的密钥添加类似注释的内容,可以忽略,我个人习惯是加上的,因为密钥太多了。 T_T

-f 指定该密钥对存放的位置和文件,默认是 ~/.ssh/id_rsa 大多数情况下是有很多密钥对的,所以为了不重复,还是很有必要添加的。当然,如果你全部都用一个密钥,那也可以忽略。

接下来,根据操作步骤提示进行操作即可。

如果你全部默认的话,那多敲几次回车就好了。Good Job!

如果需要设置你的私钥访问密码,在提示 passphrase 的时候输入你的密码,然后再输入一次确认密码即可。

执行成功后会添加两个文件,分别是之前指定路径存放的私钥文件以及一个以`.pub‵结尾的公钥文件。

将公钥添加到目标服务器

  1. 通过ssh-copy-id命令添加公钥

如果你的服务器开启了密码登录,那么可以使用这个方法一步到位添加好公钥到服务器:

ssh-copy-id -i is_rsa_root.pub root@wenhsing.test

然后输入服务器密码,它会自动将公钥内容写入到服务器的authorized_keys文件中

  1. 上传公钥,然后登陆服务器进行添加

当然,你可以通过将公钥文件上传到服务器,然后再将内容复制到authorized_keys文件中,完成公钥添加

上传文件

scp ~/.ssh/is_rsa_root.pub root@wenhsing.test:/root

登录服务器

ssh root@wenhsing.test

添加公钥

cat ~/is_rsa_root.pub >> ~/.ssh/authorized_keys

尝试登陆服务器

ssh root@wenhsing.test

执行 ssh 登录服务器,可以看到不需要填写服务器对应的登录密码了,是不是很方便?哈哈~

posted @ 2021-12-27 09:04  Wenhsing  阅读(50)  评论(0编辑  收藏  举报