Windows下SSH免密连接远程服务器教程(使用密钥)
作者:hangge | 2024-05-04 10:33
Win10 系统自带了 SSH 工具可以登录 Linux,但是每次都需要输入密码略显麻烦。除了使用密码认证外,我们还可以改用 SSH 密钥对认证方式,从而实现免密连接远程服务器。下面通过样例演示具体操作。
(2)命令回车后一路回车即可:
(2)接着编辑服务器的 authorized_keys 文件:
(3)注意:如果没有 .ssh 文件夹,或者 authorized_keys 则需要手动创建。并且创建后需要执行如下命令赋予权限:
(4)我们打开之前创建的 id_rsa.pub 公钥,将里面的内容添加到服务器 authorized_keys 文件中,然后保存退出。
(2)如果是针对指定用户设置,同样无需密码可以直接接登录到远程服务器。
1,生成 SSH 密钥对
(1)打开命令提示符(Command Prompt)或 PowerShell,执行如下命令生成 SSH 密钥对:
注意:如果系统比较老,比如使用 Win7 系统,执行 ssh-keygen 或者后续的 ssh 命令会提示“不是内部或外部命令,也不是可运行的程序或批处理文件。”我们可以安装个 git(点击访问),然后打开 Git Bash 终端来执行。
ssh-keygen
(2)命令回车后一路回车即可:
注意:如果之前生成过密钥对,则会在中途提示是否覆盖,我们输入 y 回车即可。
(3)生成的密钥对则会保存到 C:\Users\【用户名】\.ssh 目录下,其中:
- id_rsa 为私钥
- id_rsa.pub 为公钥
2,将公钥配置到远程服务器上
(1)首先我们使用 ssh 命令登录服务器,比如下面使用 root 用户登录(当然此时会要求我们输入密码):
ssh root@120.27.163.155
- 或者使用指定用户(比如 hangge)登录:
ssh hangge@120.27.163.155
(2)接着编辑服务器的 authorized_keys 文件:
提示:
- 如果想要 root 免密登录,则绝对路径是 /root/.ssh/authorized_keys
- 如果想要指定用户免密登录,则绝对路径是 /home/用户名/.ssh/authorized_keys,比如:/home/hangge/.ssh/authorized_keys
vi ~/.ssh/authorized_keys
(3)注意:如果没有 .ssh 文件夹,或者 authorized_keys 则需要手动创建。并且创建后需要执行如下命令赋予权限:
chmod 700 ~/.ssh/ chmod 600 ~/.ssh/authorized_keys
(4)我们打开之前创建的 id_rsa.pub 公钥,将里面的内容添加到服务器 authorized_keys 文件中,然后保存退出。
注意:如果 authorized_keys 文件已经有其他内容,我们换行添加到尾部即可。
3,测试 SSH 连接
(1)通过上面的设置后,我们可以无需输入密码直接登录到远程服务器。
ssh root@120.27.163.155
(2)如果是针对指定用户设置,同样无需密码可以直接接登录到远程服务器。
ssh hangge@120.27.163.155
全部评论(0)