如何在Mac和Windows 10上设置SSH无密码登录?
最编程
2024-08-03 12:49:33
...
ssh使用密码登录,每次都需要输入密码,非常麻烦。好在SSH提供了公钥登录,可以省去输入密码的步骤。
所谓公钥登录,原理很简单,就是用户将自己的公钥储存在远程主机上, 私钥存储在用户本地电脑。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
这种方法要求用户必须提供自己的公钥。如果没有现成的,可以直接用ssh-keygen生成一个
生成公钥私钥
ssh-keygen
image-20200612102041225
v2fy.com.pub是公钥,需要将信息发送到远程主机
v2fy.com是私钥, 在原位置就好
将公钥发送到远程主机
ssh-copy-id -i ~/.ssh/v2fy.com root@主机ip或域名
本地私钥配置指向到特定服务器
本地创建~/.ssh/config 文件,并给出600权限
touch ~/.ssh/configchmod 600 ~/.ssh/config
在~/.ssh/config中写入以下内容
Host 主机ip或域名HostName 主机ip或域名User rootIdentityFile ~/.ssh/v2fy.com
最终效果
2020-06-12-0006
在Windows平台免密登录
Windows10目前已经正式支持Linux子系统, 可以使用Windows10自带的Microsoft Store一键安装Linux子系统Ubuntu, 安装链接[1], Ubuntu可以按照上面的方法生成秘钥, 然后把.ssh 目录下生成好的私钥文件, config, known_hosts直接拷贝到Windows10用户的.ssh目录
image-20200612112538397
然后,我们可以使用Windows自带的 PowerShell直接登录
2020-06-12-111111
小结
懒是第一生产力, 有了ssh秘钥认证, 以后登录服务器可以不用输密码了, 使用scp等基于ssh的命令也无需输入密码, Nice!
引用链接
[1] 安装链接: https://www.microsoft.com/store/productId/9NBLGGH4MSV6