利用ssh实现window10免密登录Linux系统

1.首先请确认windows10 和 Linux系统上的ssh可用

我的局域网中Centos主机IP是192.168.1.10
Centos中查看当前IP地址的命令是 ip addr

'''示例使用的Linux发行版为Centos7.7'''
'''使用密码从win10命令行登录Centos一次'''
'''命令格式: ssh user@host '''
C:\Users\LZZ>ssh lzz@192.168.1.10
lzz@192.168.1.10's password:
Last login: Thu Jul 16 21:54:34 2020 from 192.168.1.8
Last login: Thu Jul 16 21:54:34 2020 from 192.168.1.8
[lzz@localhost ~]$
如果可以成功登录,那么继续接下来的步骤
如果不行,请在CSDN里搜索在Windows10上启用ssh在centos中启用ssh解决该问题

2.生成当前主机(Windows10)的ssh公钥密钥

对于Linux操作系统,接下来的操作的命令语句一样
'''使用ssh-keygen命令生成公钥和密钥'''
'''-t参数的值rsa指的是使用RSA加密算法来生成公钥密钥'''
C:\Users\LZZ>ssh-keygen -t rsa
Generating public/private rsa key pair.
'''在下面这行命令的冒号后面可以输入公钥密钥文件存放的路径,建议不修改'''
Enter file in which to save the key (C:\Users\LZZ/.ssh/id_rsa):
'''因为已经生成过公钥和密钥,所以会出现以下语句,无伤大雅'''
C:\Users\LZZ/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
'''私钥文件'''
Your identification has been saved in C:\Users\LZZ/.ssh/id_rsa.
'''公钥文件'''
Your public key has been saved in C:\Users\LZZ/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:123123123123123123123123123 lzz@DESKTOP-GRK9549
The key's randomart image is:
+---[RSA 2048]----+
| .+oo.*+.    ... |
| o .oo.=.  ..   .|
|  .. oo  . .   ..|
|       .. .     o|
|        S=    .oo|
|       .= +  . ..|
| o     o * *Eo.o.|
|      . =.+o+.* .|
|      .o++. += . |
+----[SHA256]-----+
ssh免密登录的原理请看这篇文章

3.将生成的公钥写入Centos的认证文件authorized_keys中

3.1在Centos用户文件夹下创建.ssh文件夹
'''以一般用户登录centos系统'''
'''在用户文件夹下创建一个.ssh文件夹'''
'''使用pwd命令确认当前目录为用户文件夹'''
[lzz@localhost ~]$ pwd
/home/lzz
[lzz@localhost ~]$ mkdir .ssh
[lzz@localhost ~]$ ls -a
......  .ssh  ....... 
3.2将Windows中生成的公钥使用scp命令发送至3.1生成的.ssh文件夹中
'''将路径更改至存放公钥的文件夹中,自行查找Windows命令行如何修改路径'''
C:\Users\LZZ>cd  C:\Users\LZZ\.ssh
C:\Users\LZZ\.ssh>scp id_rsa.pub lzz@192.168.1.10:/home/lzz/.ssh
lzz@192.168.1.10's password:
id_rsa.pub                          100%  402   131.9KB/s   00:00
'''在centos主机中查看文件'''
[lzz@localhost ~]$ cd .ssh/
[lzz@localhost .ssh]$ ls
id_rsa.pub
'''创建authorized_keys文件'''
[lzz@localhost .ssh]$ vi authorized_keys #进入编辑界面后退出保存 Esc → Shift+;: → wq → 回车
[lzz@localhost .ssh]$ ls
authorized_keys  id_rsa.pub
'''将id_ras.pub的内容添加至authorized_keys'''
'''这里使用cat命令'''
[lzz@localhost .ssh]$ cat id_rsa.pub > authorized_keys
'''或者'''
[lzz@localhost .ssh]$ cat id_rsa.pub >> authorized_keys 
''' >  会覆盖authorized_keys原有内容'''
''' >> 是向authorized_keys文件的末尾添加内容,在实现多台计算机无密码登录这台主机时应使用 >> '''
[lzz@localhost .ssh]$ cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2......bU3XFxc8lhEGgrtT8aBVCWYS4h1BB lzz@DESKTOP-GRK9549
做完上述步骤时,公钥已经放置在我们想要登录的主机上了,这里需要注意的是

我们想要无密码登录哪台主机,就需要向那台主机的authorized_keys文件中写入我们的公钥
至于为什么,请看上面给的原理链接文章

4.尝试登录,排查问题

在Windows的命令行中尝试使用ssh登录已经配置好的Centos主机
C:\Users\LZZ\.ssh>ssh lzz@192.168.1.10
lzz@192.168.1.10's password:
[lzz@localhost ~]$
!!!发现还是需要密码!!!
那么首先我们第一步要做的就是修改Centos主机上用户文件夹的权限
'''首先修改/home文件夹下的user文件夹,我主机上就是我的lzz文件夹'''
[lzz@localhost ~]$ cd /home/
[lzz@localhost home]$ chmod 700 lzz/
'''再修改/lzz文件夹下的.ssh文件夹'''
[lzz@localhost home]$ cd lzz/
[lzz@localhost ~]$ chmod 700 -R .ssh/
'''-R 参数的作用是遍历修改整个文件夹下所有文件的权限'''
Windows上尝试无密码ssh登录
C:\Users\LZZ\.ssh>ssh lzz@192.168.1.10
Last login: Thu Jul 16 23:29:25 2020 from 192.168.1.8
Last login: Thu Jul 16 23:29:25 2020 from 192.168.1.8
(base) [lzz@localhost ~]$
'''成功'''
!!!如果还是不行!!!
查看Centos主机中 /etc/ssh 文件夹下的 sshd_config文件
[lzz@localhost ssh]$ su
Password: 
[root@localhost lzz]# vi /etc/ssh/sshd_config 
'''注意以下参数'''
'''如果是想配置root用户无密码登录的,取消下面这个配置的注释'''
#PermitRootLogin yes
'''确保以下参数配置相同'''
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
'''确认无误后保存文件,重启sshd服务'''
[root@localhost lzz]# systemctl restart sshd.service
再次在Windows命令行中尝试ssh登录,如果还有问题请在评论区留言一起探讨
C:\Users\LZZ\.ssh>ssh lzz@192.168.1.10
Last login: Thu Jul 16 23:36:39 2020 from 192.168.1.8
Last login: Thu Jul 16 23:36:39 2020 from 192.168.1.8
(base) [lzz@localhost ~]$
'''成功'''

在sshd_config文件中我们看到AuthorizedKeysFile指定的是.ssh/authorized_keys
因此我们才需要在用户目录下新建.ssh文件夹和文件夹下的authorized_keys文件

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值