linux下的ssh登录服务器不需要密码, 在python中paramiko模块登录服务器为啥需要密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下的ssh登录服务器不需要密码, 在python中paramiko模块登录服务器为啥需要密码相关的知识,希望对你有一定的参考价值。
linux下的ssh登录服务器不需要密码, 在python中paramiko模块登录服务器为什么需要密码
这个有时候系统帮你缓存了追问并没有缓存
参考技术A ssh应该都要密码的吧,服务器上可能做了key百度: ssh免密码
SSH配置—Linux下实现免密码登录
首先,假设我们有两台服务器,服务器名称分别是 master 和 slave1,我们现在需要做的就是在服务器 master 上面登录 服务器 slave1 不需要输入密码就可以登录成功,如下图所示。
下面开始我们的配置步骤
1、服务器 master 上生成密钥
可以通过使用 ssh-keygen 命令来生成,我们可以先使用 man 命令或者是 help 命令查看具体需要哪些参数以及具体信息。
通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥。
执行上面的命令时,我们直接按三次回车,之后会在用户的根目录下生成一个 .ssh 的文件夹,我们进入该文件夹下面并查看有哪些内容。
我们看到有四个文件,下面分别解释下每个文件是干什么用的。
authorized_keys: 存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。
id_rsa: 生成的私钥文件
id_rsa.pub: 生成的公钥文件
known_hosts: 已知的主机公钥清单
2、远程密钥登录
这里介绍最常用的三种方式,一是通过 ssh-copy-id 命令,二是通过 scp 命令,三是手工复制。
方式一,通过 ssh-copy-id 命令设置。最后一个参数是我们要免密钥登录的服务器 ip 地址。
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100
方式二,通过 scp 命令直接将该文件远程复制过去,使用这种方式需要注意,如果你之前已经配置了其它服务器上的密钥,这是使用这种方法,就会覆盖掉你原来的密钥,这时候是不建议使用这种方式的,如果你是先将该文件复制到服务器上的一个目录下,然后在使用追加的方式,将密钥追加到 authorized_keys 也是完全 OK 的。如果你只有两台服务器也是可以直接复制到文件。
scp -p ~/.ssh/id_rsa.pub [email protected]<ip>:/root/.ssh/authorized_keys
方式三,通过手工复制。将本地 id_rsa.pub 文件的内容拷贝至远程服务器的 ~/.ssh/authorized_keys 文件中也完全可以的。先使用 cat 命令查看当前的公钥,然后复制,在到目标服务器上去粘贴。
以上步骤,我们就完成了免密钥登录,下面我们来进行验证。
到此,我们的 ssh 免密钥登录就大功告成。下面给大家说说免密钥登录的原理,有兴趣的可以看看。
首先来看下原理图
1、ssh 客户端向 ssh 服务器端发送连接请求
2、ssh 服务器端发送一个随机的信息
3、ssh 客户端使用本地的私钥对服务器端发送过来的信息进行加密
4、ssh 客户端向服务器端发送加密过后的信息
5、ssh 服务器端使用公钥对该信息进行解密
6、若解密之后的信息和之前发送的信息匹配,则信任客户端,否则不信任。
PS:如果觉得文章不错的话,还请大家点赞分享下,算是对我的最大支持。
以上是关于linux下的ssh登录服务器不需要密码, 在python中paramiko模块登录服务器为啥需要密码的主要内容,如果未能解决你的问题,请参考以下文章