目录
- 原理
实现步骤
- 一、生成公钥和私钥
- 二、在客户端编辑配置文件
- 三、将公钥拷贝到服务器
- 四、重启ssh服务
- 五、关闭再打开cmd进行登录
每次登录服务器都要输入密码很麻烦,所以进行免密登录配置之后就可以跳过输入密码的步骤,直接登录服务器.
原理
ssh
提供了安全的身份认证的策略,在免密登录之前,首先需要一对公钥和私钥.
客户端拿着私钥,服务端拿着公钥,属于非对称加密.
私钥客户端自己拿着不在网络上传输,公钥可以网络传输存在服务器上,登录的时候拿私钥进行加密,内容发送给服务器,服务器对公钥进行解密,成功解密就告诉客户端建立链接.
实现步骤
一、生成公钥和私钥
在用户/.ssh
目录,打开cmd
,输入ssh-keygen
,之后输入文件名称,一路回车就生成了私钥和公钥
二、在客户端编辑配置文件
在用户/.ssh
目录,打开config
文件,如果没有自己新建一个
# 将来可以 ssh aaaa 进行连接,这里可以写IP也可以写域名
Host www.aaa.com
# 可以是域名也可以是IP
HostName 59.110.XX.XXX
# 登录时的用户名
User root
PreferredAuthentications publickey
# 本地文件
IdentityFile C:\Users\burning\.ssh\burning
重要的提示!!!IdentityFile C:\Users\burning\.ssh\burning
用户名的路径上一定不能有中文,如果有就无法实现免密登录.如果你的用户名是中文,要么需要修改成英文,要么就将秘钥放置到别的文件路径中
三、将公钥拷贝到服务器
- 先密码登录一次服务器,在服务器目录下执行下面的命令
> pwd 查看当前所在目录
# /root
> cd .ssh
> ls
# authorized_keys 授权者文件,要把公钥放到这里来
> cat authorized_keys # 打印文本文件中的内容,现在是空
去 用户/.ssh
目录下使用cmd
命令将公钥进行拷贝,scp
命令后面不能加中文
# 注意下面的root后面跟的IP或者是域名,必须和config中的Host一致
> scp burning.pub root@www.aaa.com:/root/.ssh
# 目录下有了公钥的文件,内容追加到authorized_keys中
> cat >> authorized_keys < burning.pub
> cat authorized_keys
# 查看内容可以看到公钥已经存进去了
四、重启ssh服务
拷贝完成之后,要重启ssh
服务
systemctl restart sshd
五、关闭再打开cmd进行登录
这个时候打开cmd
进行登录ssh root@www.aaa.com
,可以看到不需要密码,直接登录成功
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。