Windows 免密码 ssh 登陆 Linux

本文将介绍如何在 Windows 配置 SSH 免密登陆 Linux。

生成密钥对

打开 cmd 或者 Powershell,按下列步骤操作:

1
2
3
# 这条命令用于生成密钥
# 随后一路回车,当看到一幅矩形图生成,那么密钥生成成功
ssh-keygen -t rsa

将公钥添加到 Linux 账户

打开 Powershell,执行下列命令:

Powershell

1
Get-Content ~\.ssh\id_rsa.pub | ssh username@host "cat >> ~/.ssh/authorized_keys"

验证是否添加成功

cmd 下输入 ssh username@host uname 如果看到输出Linux 表示添加成功。

同样可以直接输入 ssh username@host 这时可以看到不用输入密码即可登录 Linux 了。

依然无法免密码登录

添加key之后还是需要输入密码,主要排查方法是 ssh username@host -vvv 输出debug信息,或者remote机器使用 cat /var/log/secure 查看日志

可能的原因是:

  • 目录权限问题

    远程目录.ssh 和.ssh 目录下的文件的权限需要分别设置700和600

  • 找不到密钥

    ssh登录命令添加参数 -i C:\User\name\.ssh\id_rsa 手动指定密钥文件

参考

本文参考以下文章,在此致以诚挚谢意!

windows免密码ssh登录linux